我正在使用Python 2解决http://hackerrank.com上的问题
编译器发出错误
追踪(最近一次通话): 文件“/run-Lx3mHJ3G2jHRLRW9bjbX/solution.py”,第4行,in t = raw_input() EOFError:读取行时的EOF
这是代码:
import sys
a = []
while 1:
t = raw_input()
if t=="":
break
else:
s = [i for i in t]
s.reverse()
a.append(s)
a.reverse()
for i in a:
for j in i:
sys.stdout.write(j)
sys.stdout.write('\n')
当我在计算机上运行它时,它运行正常。
我是应该向HackerRank解释器报告还是我做错了?
为了完整的信息,我已经尝试使用“input()”,“str(input())”和其他可能的变体。
答案 0 :(得分:2)
HackerRank似乎不支持重复raw_input()的python习惯用语,直到它得到一个空行。 HackerRank显然要求提交的代码使用标题部分中的测试描述参数(输入的第一行或第二行)来控制读取的行数。
尝试阅读过去的预期输入行会在我的试验中触发类似的EOFError:
...
def main():
lines = []
line = raw_input()
while line:
lines.append(line)
line = raw_input() # line 232
...
导致
Status: EOFError thrown on line 232
重写输入代码以只读取预期的行数足以使修订提交通过。例如,对于算法部分中的“服务通道”预热练习:
...
first_line = raw_input()
freeway_length, testcase_count = parse_session_controls(first_line)
second_line = raw_input()
widths = parse_widths(second_line, freeway_length)
for _unused in range(testcase_count):
testcase_line = raw_input()
entrance_num, exit_num = parse_testcase(testcase_line, freeway_length)
print(measure_bottleneck(widths, entrance_num, exit_num))
...