— De novo apareceu duas vezes o mesmo número! — reclamou a técnica que cuida do sistema de bicicletas…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar algoritmos clássicos de manipulação sobre listas.
Fonte: Base Nacional Comum Curricular (MEC).Questão
— De novo apareceu duas vezes o mesmo número! — reclamou a técnica que cuida do sistema de bicicletas compartilhadas da cidade. No fim do dia, o aplicativo gera uma lista com os IDs das bikes que foram encaixadas nos pontos de devolução. Às vezes, o sensor lê o mesmo encaixe duas vezes e repete o ID. Para planejar revisões, a equipe precisa de uma nova lista com IDs únicos, mantendo a ordem em que cada bike apareceu pela primeira vez. Em um teste, o registro do dia foi: [12, 12, 7, 12, 7, 9, 9]. O relatório esperado é: [12, 7, 9]. Cinco procedimentos foram sugeridos para transformar a lista original nesse relatório. Com base no texto, identifique o procedimento que atende ao relatório esperado, removendo repetições e preservando a primeira aparição de cada ID.
- A) Percorrer por indice e, quando houver repeticao, apagar o primeiro elemento do par repetido na lista original
- B) Ordenar a lista e, em seguida, apagar apenas os IDs repetidos que ficarem lado a lado
- C) Percorrer a lista e apagar um ID sempre que ele for igual ao ID imediatamente anterior
- D) Percorrer a lista e, para cada ID, acrescentar ao resultado apenas se ele ainda nao estiver no resultado
- E) Percorrer a lista e usar busca binaria no resultado para decidir se o ID ja apareceu
✅ Resposta correta: alternativa D
Resolução passo a passo
- Entenda o pedido. Devemos percorrer a lista original [12, 12, 7, 12, 7, 9, 9], manter a ordem e guardar cada ID apenas na sua primeira aparição, obtendo [12, 7, 9].
- Analise a alternativa D. Percorremos a lista do início ao fim. Para cada ID, verificamos se ele já está no resultado. Se não estiver, o acrescentamos ao final do resultado. Assim: 12 entra; o 12 seguinte já está, então é ignorado; 7 entra; 12 ignorado; 7 ignorado; 9 entra; 9 ignorado. Resultado: [12, 7, 9]. Esse é o relatório esperado.
- Por que as outras estão erradas. A: apagar o primeiro elemento de cada par repetido remove justamente a primeira aparição, o que contraria a exigência de preservar a primeira ocorrência. B: ordenar a lista altera a ordem original; o resultado seria [7, 9, 12], que não respeita a ordem de primeira aparição. C: apagar apenas repetições imediatamente consecutivas deixaria os 12 e 7 que reaparecem depois de outros IDs, produzindo [12, 7, 12, 7, 9]. E: a busca binária exige uma lista ordenada, e o resultado [12, 7, 9] não está ordenado, então a busca binária não funciona nele.
- Conclusão. O procedimento correto é o da alternativa D, que coincide com o gabarito oficial, pois é o único que mantém a ordem e a primeira aparição de cada ID.
💡 Dica: Percorra a lista e adicione IDs ao resultado apenas se ainda não estiverem presentes.
Alternativa por alternativa
Acredita que basta remover um dos elementos repetidos, sem perceber que apagar o primeiro elemento do par mantém a última ocorrência, e não a primeira, e ainda bagunça os índices durante a remoção.
Acredita que ordenar a lista não altera o resultado final e que remover repetições adjacentes é suficiente, sem notar que a ordenação muda a sequência original dos IDs.
Entende que repetição significa apenas valores iguais um ao lado do outro, ignorando que o mesmo ID pode reaparecer depois de outros IDs na lista.
Por que engana: Confundir remoção de duplicatas com remoção apenas de elementos adjacentes ou apagar o primeiro elemento repetido.
Mantem a ordem de primeira aparicao e evita repeticoes ao testar pertença antes de inserir no resultado.
Acredita que a busca binária pode ser usada em qualquer lista, sem perceber que ela exige que os dados estejam ordenados, o que não ocorre com o resultado construído.
Raio-X da questão
remover repetições mantendo ordem
avaliacao
listas e estruturas de dados · controle de fluxo
estude estruturas de dados para remoção de duplicatas mantendo ordem
Confundir remoção de duplicatas com remoção apenas de elementos adjacentes ou apagar o primeiro elemento repetido.
pensamento_critico
cotidiano
Questões parecidas com resolução
- No terminal de uma biblioteca comunitaria, o cadastro dos visitantes ficou com repeticões porque algumas pessoas…
- Cerca de 300 sacos de lixo foram recolhidos em um mutirão de limpeza na orla. Para registrar a coleta, cada saco recebeu…
- — Anota na lista por voz: banana, leite, banana, pão — pediu o pai, que prefere ouvir e falar os itens porque tem baixa…
- Considere a lista de dados de leituras de um sensor: [7,7,7,2,2,3,3,3,3]. Escreva um algoritmo em linguagem descritiva…
- Ao fim de cada tarde, uma oficina de robótica comunitária registra o uso de oito kits de ferramentas. Para organizar a…
- Dada uma lista de dados com repetições, qual método preservando a ordem dos primeiros aparecimentos tem complexidade…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
