たとえば、[1,3,3,5]
返す必要がありTrue
ながら、[1,3,1,3]
返す必要がありますFalse
。
ループを使用した簡単な解決策を探しています。
私は以下を試しました:
def conseq(nums):
for i in range (len(nums)):
if nums[i]==nums[i+1]:
return True
break
else:
return False
関数が初めて、異なる2つの連続した数値に遭遇した場合、を返しますFalse
。関数から戻ると、その関数はすぐに終了し、その後関数は続行しません。これは、break
が必要でない理由でもあります。
コードのもう1つの問題は、最終的な数値に到達するnums[i + 1]
と、配列の境界外にアクセスすることです。そのため、繰り返しでlen(nums) - 1
はなく、繰り返し処理を行う必要len(nums)
があります。その後に何もないため、最終的な数値を確認する理由はありません。
def conseq(nums):
for i in range(len(nums) - 1):
if nums[i]==nums[i+1]:
return True
# Only return False once we've exhausted all numbers.
# Since we didn't return True so far - it means there are
# no consecutive equal numbers, so we can safely return False
return False
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加