我试图在我的Jupyter NoteBook上完美运行的HackerEarth上解决这个问题,但由于某些原因,我在HackerEarth上得到了NZEC的运行时错误。
问题如下-提供给您一个大小为N的数组A,其中包含非负整数。您的任务是确定通过选择所有N个数字中的最后一个数字而形成的数字是否可以被10整除。
输入格式
第一行:表示数组大小的单个整数第二行:空格分隔的整数。输出格式
如果该数字可以被10整除,则打印Yes。否则,打印号
Code -
N = int(input())
data = [int(x) for x in input().split(" ")]
#print(data)
new_list = [ele for ele in str(data)]
#print(new_list)
new_up = []
for item in range(2,len(new_list),2):
#print(new_list[item])
new_up.append(new_list[item])
#print(new_up)
final_list = []
#results = []
for obj in range(0,len(new_up),2):
#print(new_up[obj])
final_list.append(new_up[obj])
#print(final_list)
final_list = list(map(int,final_list))
#print(final_list)
result = ''
for items in final_list:
result += str(items)
#print(result)
if int(result)%10 == 0:
print("Yes")
else: print("No")
发布于 2021-08-16 08:15:10
一次线性时间:
print("Yes") if int("".join(map(str,(i % 10 for i in [int(x) for x in input().split(" ")])))) % 10 == 0 else print("No")
解释:
正如您已经知道的,这部分是您的输入[int(x) for x in input().split(" ")]
,除了N参数是完全多余的之外,没有什么新的东西,因此在代码中不再需要N参数。
接下来,此部分i % 10 for i in [Input]
循环输入,创建输入的所有最后一位数字的列表。
部分int("".join(map(str, list of last digits from Input)))
将所有的整数映射为一个字符串,然后将它们彼此相加,最后将它们转换回一个整数。
最后一部分,那么print("Yes") if appended Integer % 10 == 0 else print("No")
是一个简单的一行,如果不是这样的话。
从技术上讲,对于整个问题,最有效的解决方案是简单地获取输入列表的最后一个元素,并检查它的最后一个数字是否为0(因为它的赋值似乎只是为了知道结果int是否可以被10整除而没有任何休息,因此只有最后一个数字是必要的),但您的问题表明您希望遍历每个元素并追加它。如下所示:
print("Yes") if int(input().split(" ")[-1]) % 10 == 0 else print("No")
发布于 2021-08-16 08:09:35
问题是final_list
中的某些元素无法转换为int
。
示例:
N = 2
data = [1, 2]
new_list # ['[', '1', ',', ' ', '2', ']']
new_up # [',', '2']
final_list # [',']
https://stackoverflow.com/questions/68799230
复制相似问题