答案是
def has22(nums):
for i in range(0, len(nums)-1):
#if nums[i] == 2 and nums[i+1] == 2:
if nums[i:i+2] == [2,2]:
return True
return False
我不明白为什么会出现" -1"在len(nums)之后。这个问题可能与代数有关......
答案 0 :(得分:1)
您开始计算数字为0的数组,因此数组中的第一个元素是第0个元素。
如果数组有三个元素a,b,c。索引为0,1,2但长度为3。
因此: 如果你想循环遍历你想要的所有索引
0..2
或
0 ..长度 - 1
答案 1 :(得分:1)
def has22(nums):
istwo=0
for i in nums:
if i==2:
if istwo:
return True
else:
istwo=1
else:
istwo=0
return False
我认为 FLAGS 是解决此类问题的更好{更人性化的}解决方案。它也很简单。
答案 2 :(得分:0)
def has22(nums): 如果len(nums)< 2: 返回False
表示范围内的i(0,len(nums)-1): nums [i] == 2和nums [i + 1] == 2: 如果nums [i] == 2和nums [i + 1] == 2: 返回True i + = 1 其他: 返回False i + = 1
表示范围内的i(0,len(nums)-1): 如果nums [i]!= 2和nums [i]!= 2: 返回False
答案 3 :(得分:0)
def has22(nums):
i = 0
while i < len(nums) -1:
return (nums[i] == 2 and nums[i+1] == 2) or (nums[i-1] == 2 and nums[i-2] == 2) or (nums[i-2] == 2 and nums[i-3] == 2)
if len(nums) < 2:
return False
答案 4 :(得分:0)
更具可读性的解决方案:
def has22(nums):
if not nums or len(nums) == 1: return False
prev = None
for i, number in enumerate(nums):
if number == prev: return True
prev = number
return False