leetcode时有道题要求输出的列表是[1,0],但是标准输出只能是[1, 0],并且我的代码在本地能跑 ,在leetcode就跑不动报错了
leetcode第一题就难住我了啊,从入门到放弃,求支援
a = eval(input())
b = int(input())
for i in a :
if b-i not in a:
pass
else:
c = a.index(i)
d = a.index(b-i)
list1 = []
list1.append(d)
list1.append(c)
print(list1)
执行出错信息:
NameError: name 'Solution' is not defined
ret = Solution().twoSum(param_1, param_2)
Line 40 in _driver (Solution.py)
_driver()
Line 51 in (Solution.py)
这好像不是列表的问题吧,力扣上的题目都是以类的形式提供的,你看它默认的都是 class Solution() 开头的格式,你要把代码按它的格式写到类的方法里。
而且你的代码逻辑上有问题,如果列表中有相同的元素,则不能找到正确的位置。比如题目给的最后一个示例,输入列表[3,3], target是6,输出应该是[0,1],你的代码输出是[0,0]。应该每次向后查找。
在你的代码基础上修改如下(按力扣的格式,也已提交通过):
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
for i in range(len(nums)):
if target-nums[i] not in nums[i+1:]:
pass
else:
c = i
d = nums[i+1:].index(target-nums[i])+i+1
list1 = []
list1.append(c)
list1.append(d)
break
return list1
leetcode是有标准的参数形式的,打开题目的时候给定的类名和函数名都是不能乱改的