Created
February 3, 2020 10:32
-
-
Save luizomf/21738eb6f06c1b715ca3af904b6d6a97 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
-> É 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