我正在努力解决Spotify的技术难题中的双边问题。 http://www.spotify.com/us/jobs/tech/bilateral-projects/我的计算机上有一些工作,它从文件input.txt读取输入,然后输出到ouput.txt。我的问题是,当我提交代码必须从stdin读取时,我无法弄清楚如何使我的代码工作。我看了几篇其他帖子,但我没有看到任何对我有意义的内容。我看到有些人只是使用raw_input - 但这会产生用户提示?不知道该怎么办。这是我的代码的protion,用于读取输入,并写入输出。有关如何更改的建议吗?另外,如果将代码更改为从stdin读取,我将如何测试代码?如何将测试数据放入stdin?我从spotify回来的错误说运行时错误 - NameError。
import sys
# Read input
Input = []
for line in sys.stdin.readlines():
if len(line) <9:
teamCount = int(line)
if len(line) > 8:
subList = []
a = line[0:4]
b = line[5:9]
subList.append(a)
subList.append(b)
Input.append(subList)
##### algorithm here
#write output
print listLength
for empWin in win:
print empWin
答案 0 :(得分:0)
你其实没事。
for line in sys.stdin.readlines():
将从stdin读取行。然而,它可以缩短为:
for line in sys.stdin:
我不使用Windows,但是要从命令行测试您的解决方案,您应该像这样运行它:
python bilateral.py < input.txt > output.txt
如果我像上面那样运行你的代码,我会看到错误消息
Traceback (most recent call last):
File "bilateral.py", line 20, in <module>
print listLength
NameError: name 'listLength' is not defined
偶然(因为我猜你没有发送)是Spotify拼图检查器发现的错误。你可能只是拼错了一个变量。