3

我正在使用 Python 2在http://hackerrank.com上解决一个问题

编译器给出错误

回溯(最后一次调用):文件“/run-Lx3mHJ3G2jHRLRW9bjbX/solution.py”,第 4 行,在 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())”和其他可能的变体。

4

1 回答 1

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))
...
于 2014-04-15T06:32:37.490 回答