当我在我的电脑上运行这段代码时,它是正常的,但当我在leetcode上提交它时,它提供的运行时更像上面所说的。错误:
ValueError: invalid literal for int() with base 10: '[2,7,11,15]'
if (int(arr[i])+int(arr[j]))==target and int(arr[i])!=int(arr[j]) and cnt<1:
Line 11 in <module> (Solution.py)
我该怎么修
arr=[]
arr=input()
arr=arr.split()
target=int(input())
cnt=0
for i,num in enumerate(arr):
for j,num1 in enumerate(arr):
if (int(arr[i])+int(arr[j]))==target and int(arr[i])!=int(arr[j]) and cnt<1:
li=[]
li.append(i)
li.append(j)
li=sorted(li)
print(li)
cnt=cnt+1;
此错误表明转换失败,可能是在尝试将
arr[...]
强制转换为整数时正如您在错误中看到的,您尝试将
[2,7,11,15]
转换为int,但立即失败。您在arr.split
上的逻辑可能是错误的:您假设输入将使用空格(aka2 7 11 15
)给出,而它使用逗号分隔([2, 7, 11, 15]
)对于这个确切的输入,您应该使用
arr=arr.split(',')
,并删除开头的“[”和“]”&;绳子的末端。您可以通过只获取arr
的子字符串来实现这一点固定行:
arr = arr[1:-1].split(',')
这应该包括导致问题的特定输入。话虽如此,我不确定它是否能涵盖所有案例,因为你没有给出完整的作业。这取决于您如何假设输入将被提供
相关问题 更多 >
编程相关推荐