Ola, pessoal, estou aprendendo python e me surgiu uma divida resolvendo um exercicio, alguem poderia me explicar a logica da solucao?
Exercicio:
Given an array of ints, return True if … 1, 2, 3, … appears in the array somewhere.
array123([1, 1, 2, 3, 1]) → True
array123([1, 1, 2, 4, 1]) → False
array123([1, 1, 2, 1, 2, 3]) → True
Minha solucao:
[code]def array123(nums):
num1 = False
num2 = False
num3 = False
if len(nums) == 0:
return False
for i in range(len(nums)):
if((nums[i] == 1)):
num1 = True
elif((nums[i] == 2)):
num2 = True
elif((nums[i] == 3)):
num3 = True
else:
return False
return num1 == num2 == num3[/code]
Solucao dada pelo site de exercicios:
[code]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[/code]
Eu consegui resolver, so’ nao entendi a logica da solucao do site. Para mim, parece que ele so’ verifica se 1,2,3 aparecem em sequencia.