Skip to content

Instantly share code, notes, and snippets.

@luizomf
Created February 3, 2020 10:32
Show Gist options
  • Save luizomf/21738eb6f06c1b715ca3af904b6d6a97 to your computer and use it in GitHub Desktop.
Save luizomf/21738eb6f06c1b715ca3af904b6d6a97 to your computer and use it in GitHub Desktop.
"""
-> É uma lista de listas de números inteiros
-> As listas internas tem o tamanho de 10 elementos
-> As listas internas contém números entre 1 a 10 e eles podem ser duplicados
Exercício
-> Crie uma função que encontra o primeiro duplicado considerando o segundo
número como a duplicação. Retorne a duplicação considerada.
Requisitos:
A ordem do número duplicado é considerada a partir da segunda
ocorrência do número, ou seja, o número duplicado em si.
Exemplo:
[1, 2, 3, ->3<-, 2, 1] -> 1, 2 e 3 são duplicados (retorne 3)
[1, 2, 3, 4, 5, 6] -> Retorne -1 (não tem duplicados)
Se não encontrar duplicados na lista, retorne -1
"""
def random_list_creator(length):
""" Create a random int list
:param length: List size
:type length: int
:return: a new list with random int numbers
:rtype: list
"""
from random import randint, shuffle
new_list = [1]
for i in range(length - 1):
new_list.append(randint(1, length))
shuffle(new_list)
return new_list
def encontra_primeiro_duplicado(param_lista_de_inteiros):
numeros_checados = set()
primeiro_duplicado = -1
for numero in param_lista_de_inteiros:
if numero in numeros_checados:
primeiro_duplicado = numero
break
numeros_checados.add(numero)
return primeiro_duplicado
if __name__ == '__main__':
for i in range(100):
random_int_list = random_list_creator(10)
first_duplicate = encontra_primeiro_duplicado(random_int_list)
if(first_duplicate):
print(random_int_list,
f'O primeiro duplicado é: {first_duplicate}')
else:
print(random_int_list, 'Não tem duplicados')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment