剧透这与Hackerrank的30天代码有关。我使用python 2。
我在解决第8天(词典和地图)挑战的一部分时遇到了问题。基本上,他们想给你提供x个名字和数字,这样你就可以建立一个字典。然后,他们会向您提供大量查询,以便您可以在电话簿中拨打电话,如果他们在那里或打印“未找到”#34;否则。但是n是一个未知的数字,因此我输了。 问题陈述here,以防有人感兴趣......
无论如何,我通过我的代码传递了prelim测试用例,但实际7个案例中只有1个,因为我不知道在我的"和#34;循环(所以我把一些任意的东西放在1000.)我有一种感觉,我必须使用类似* args的东西,但我不知道如何拼接它。有人能指出我正确的方向吗?提前谢谢!
代码:
t = int(raw_input())
phonebook = {}
for x in range(t):
entry,num = raw_input().strip().split(' ')
entry,num = [str(entry),int(num)]
phonebook[entry] = num
i = 0
while i < unknown_range: <---- problem here
name = str(raw_input())
if name in phonebook.keys():
string = name +'='+ str(phonebook[name])
print(string)
i += 1
else:
print("Not found")
i += 1
答案 0 :(得分:0)
创建一个循环,其中退出条件在循环中给出:
i = 0
while True:
name = str(raw_input())
# or a try-except statement depending on the kind of input
if not name.strip():
break
if name in phonebook.keys():
string = name +'='+ str(phonebook[name])
print(string)
i += 1
else:
print("Not found")
i += 1