我是编程新手,并试图从codingbat.com处理这个解决方案。
给定一个int数组,如果数字1,2,3的序列出现在某个数组中,则返回True。
这是解决方案:
def array123(nums):
# Note: iterate with length-2, so can use i+1 and i+2 in the loop
for i in range(len(nums)-2):
if nums[i]==1 and nums[i+1]==2 and nums[i+2]==3:
return True
return False
但为什么(len(nums)-2)被使用?它与我们开始for-in循环的位置有关吗?
我似乎无法在网上找到答案,希望有人可以提供帮助。
答案 0 :(得分:0)
循环在len(nums)-2
结束,因为三个整数无法从数组中的最后三个项开始。因此,对于最后两个数组项,不必检查是否存在序列。
答案 1 :(得分:0)
一种稍有不同的解决方案,您不必担心len(nums)-2
问题:
def array123(nums):
for i in range(len(nums)):
if nums[i:i+3]==[1,2,3]:
return True
return False