2017-11-28 2 views
0

私はプログラミングに慣れていないし、codingbat.comからこのソリューションの周りを頭で覆そうとしている。Codingbat Warm-up exercise array123

整数の配列が与えられている場合、数字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ループをどこから始めるのと関係がありますか?

私は答えをオンラインで見つけられないようです。誰かが助けてくれることを願っています。 整数配列に最後の3つの項目を過ぎて開始することができないので、

+0

'range()'が何をしているのか理解していますか? –

+0

ループの開始位置とは関係ありません。それは、ループ**が終わるところで**行うことです。 –

+0

範囲がわかっています。申し訳ありませんが、どうして-2で終わるようにしたいのか分かりません。 array123([1、1、2、3、1]) 3(つまり-2)で停止しますか? – Ann

答えて

0

ループはlen(nums)-2で終了します。したがって、最後の2つの配列項目では、シーケンスがあるかどうかを確認する必要はありません。

関連する問題