我正在编写以下来自codingbat的实践问题:
给定一个int数组,如果.. 1,2,3,..出现在某个数组中,则返回True。
我写过:
def array123(nums):
array = [1,2,3]
for i in nums:
sub = nums[i:i+3]
if array == sub:
return True
return False
当字符串为[1,2,3]时,它会一直失败,任何其他数字组合都有效。我理解编解码器给出的解决方案,但我不明白为什么我的代码只是在那个实例中失败了。我做错了什么?
答案 0 :(得分:2)
for i in nums:
先后为i
分配nums
列表中项的值。
但是你似乎相信它指的是指数而不是价值 - 或许这是因为它等同于它的等同物构造将在Javascript。
因此,让i
遍历索引 - for i in range(len(nums)-3):
,其余代码似乎没问题!