Python代码NZEC运行时错误排查:HackerEarth题目求解问题
NZEC错误原因及代码问题分析
NZEC是什么?
NZEC是Non-Zero Exit Code的缩写,说明你的程序因未捕获的异常崩溃,返回了非零退出码,而非正常结束。
你的代码存在的问题
输入处理导致空字符串异常
你使用split(' ')分割输入,当输入行包含连续空格、开头/结尾空格时,会生成空字符串元素(比如输入"1 2 "会得到['1','2',''])。后续执行i[-1]时,空字符串没有索引元素,触发IndexError,直接导致程序崩溃,产生NZEC错误。冗余的大数拼接操作
判断拼接后的数能否被10整除,完全不需要将所有最后一位拼接成整数——因为一个数能被10整除的核心条件是最后一位为0,而拼接后的数的最后一位就是原数组最后一个元素的最后一位。你的拼接操作不仅多余,还可能在N极大时造成不必要的性能消耗。
修正后的代码
简化版(最优解)
直接判断原数组最后一个元素的最后一位是否为0:
n = int(input()) nums = input().split() print("Yes" if nums[-1][-1] == '0' else "No")
修复原逻辑版
如果想保留你原本的思路,只需将split(' ')改为split()(自动处理任意空白,不会生成空字符串):
size = int(input()) integers = input().split() last_digit = [i[-1] for i in integers] number = int(''.join(last_digit)) print("Yes" if number % 10 == 0 else "No")
验证特殊情况
- 数组只有一个元素
0:输出Yes,符合要求。 - 数组为
[0, 1]:拼接结果为"01"(即1),输出No,符合要求。 - 数组为
[12, 30]:拼接结果为"20",输出Yes,符合要求。
内容的提问来源于stack exchange,提问作者user26346636
相关产品推荐
相关产品推荐

