19. Sin repeticiones
Crea una función que, dada una lista, devuelva una nueva lista con los elementos únicos, eliminando cualquier duplicado. El orden de los elementos únicos debe mantenerse tal como aparecen por primera vez en la lista original.
La función debe aceptar una lista de cualquier tipo de elementos (que sean comparables) y devolver una nueva lista sin duplicados.
def eliminar_duplicados(lista: list) -> list:
# Tu código aquí
pass
eliminar_duplicados([1, 2, 2, 3, 1, 4, 5, 3])
# [1, 2, 3, 4, 5]
eliminar_duplicados(["a", "b", "c", "a", "d", "b"])
# ["a", "b", "c", "d"]
eliminar_duplicados([True, False, True, True, False])
# [True, False]
eliminar_duplicados([])
# []
Ratoncito
Implementa la función utilizando un enfoque que preserve el orden de la primera aparición.
Dragón
Resuelve el problema sin utilizar estructuras de datos auxiliares como set que faciliten directamente la eliminación de duplicados (forzándote a pensar en cómo gestionar los elementos ya vistos sin una búsqueda O(1)). Alternativamente, si el rendimiento es crítico y el orden no lo es, explica cómo la elección de una estructura de datos diferente podría optimizar la solución.
Este trabajo está bajo una licencia Attribution-NonCommercial-NoDerivatives 4.0 International.
Apóyame en Ko-fi