ValueError: invalid literal for int() with base 10: '[2,7,11,15]'

ValueError: invalid literal for int() with base 10: '[2,7,11,15]'

当我 运行 这段代码在我的电脑上时它没问题,但是当我在 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 上可能是错误的:你假设输入将用空格给出(又名 2 7 11 15),而它用逗号分隔([2, 7, 11, 15])。

对于准确的输入,您应该使用 arr=arr.split(',') 并删除字符串开头和结尾的“[”和“]”。您可以仅使用 arr.

的子字符串来执行此操作

固话:arr = arr[1:-1].split(',').

这应该涵盖导致问题的特定输入。话虽如此,我不确定它是否会涵盖所有情况,因为您没有给出完整的作业。这取决于您假设输入的方式。