我在Google的Codejam 2019中针对密码难题编写了此代码, 这是我正在尝试使用此代码的输入,当我在google codejam 2019上提交时,我一直收到运行时错误,当我使用其他ide时,我看到我必须在输入第二个输入后按回车,第一个输入有效很好,我不知道如何跳过这个进入阶段,我确定这就是为什么我一直收到运行时错误的原因。
可以在此处找到问题: https://codingcompetitions.withgoogle.com/codejam/round/0000000000051705/000000000008830b
Here is the RE error, that's the only thing it shows
Proof that it works when testing
输入(请复制每行并手动输入,而不是复制整个输出,因为这对行之间的所有空格都无效):
2
103 31
217 1891 4819 2291 2987 3811 1739 2491 4717 445 65 1079 8383 5353 901 187 649 1003 697 3239 7663 291 123 779 1007 3551 1943 2117 1679 989 3053
10000 25
3292937 175597 18779 50429 375469 1651121 2102 3722 2376497 611683 489059 2328901 3150061 829981 421301 76409 38477 291931 730241 959821 1664197 3057407 4267589 4729181 5335543
我不知道该怎么办。
代码:
def decoder():
t = int(input())
for q in range(1,t+1):
temp = [int(x) for x in input().split()]
l = temp[1]
L = [int(x) for x in input().split()]
primes = []
temp_list = []
ans = ""
temp_list.append(int(L[0]/gcd(L[0],L[1])))
for i in range(1,l):
a = gcd(L[i],L[i-1])
temp_list.append(int(a))
temp_list.append(int(L[l-1])/a)
for i in temp_list:
if i not in primes:
primes.append(i)
primes.sort()
dic = {str(primes[i]): chr(i+65) for i in range(26)}
print("Case "+"#"+str(q)+": ", end = "")
for i in range(0,l+1):
print(dic[str(temp_list[i])], end = "")
print("")
def gcd(a,b): 如果(a == 0): 返回b 返回gcd(b%a,a) 解码器()
预期结果将是:
案例1:CJQUIZKNOWBEVYOFDPFLUXALGORITHMS
第2种情况:SUBDERMATOGLYPHICFCFJKNQVWXZ
答案 0 :(得分:0)
编辑:误解了问题,不要看这个。
input()
在第一个换行符之前接受整个字符串。因此,对于第一个输入,它是一个数字,后跟换行符,因此没有问题。但是输入103 31
实际上是字符串"103 31"
。对于这种类型,您需要读取整个字符串,然后将其split()
转换为不同的子字符串,最后将所有字符串转换为数字。
例如:
>>> inputs = "1 2 3 4 5"
>>> # split the input
... x = input.split()
>>> # Convert list of strings into list of int
... x = [int(val) for val in x]
>>> x
[1, 2, 3, 4, 5]
>>>