所以我试图让HackerRank服务器为我检查代码。我建立了一个名字和他们各自的电话号码的字典。HackerRank 服务器使用 stdin 通过在连续的行中输入名称来查询其号码的名称,直到用完名称。
我知道在shell中使用Ctrl + D(Unix)或Ctrl + Z(Windows)来发出EOF信号,但我不确定如何设置我的代码,以便程序停止尝试从stdin读取 - 当服务器停止输入查询时 - 并打印电话号码。这是我对解决方案的最佳猜测:
N=input() #number of phonebook entries
D={}
for i in range(N): #build phonebook as dictionary using stdin
name=raw_input()
number=raw_input()
D[name]=number
for i in range(10000): #queries are then entered with a max number of 10^4
try:
line=raw_input()
if line in D.keys():
print line + "=" + D[line] #print name=phonenumber
else:
print "Not found"
except EOFError: #break out of loop if EOF is reached
break
这似乎没有做到,我想知道这是因为我没有正确读取EOF还是原始问题中的某些特殊性,我可能没有正确解释。
line
将是到达文件末尾时''
的空字符串。