Solución al Ejercicio: Primer carácter no repetido en una cadena
📋 Copiar código
from collections import Counter
def primer_no_repetido(cadena):
"""
Encuentra el primer carácter no repetido en una cadena.
Args:
cadena: La cadena de texto a analizar.
Returns:
El primer carácter no repetido, o None si todos los caracteres se repiten.
"""
frecuencia_caracteres = Counter(cadena)
for caracter in cadena:
if frecuencia_caracteres[caracter] == 1:
return caracter
return None
# Ejemplo de uso:
texto1 = "aabbcde"
resultado1 = primer_no_repetido(texto1)
print(f"El primer no repetido en '{texto1}' es: {resultado1}")
texto2 = "aabcbcd"
resultado2 = primer_no_repetido(texto2)
print(f"El primer no repetido en '{texto2}' es: {resultado2}")
texto3 = "aabbcc"
resultado3 = primer_no_repetido(texto3)
print(f"El primer no repetido en '{texto3}' es: {resultado3}")
texto4 = "The quick brown fox jumps then quickly jumps again"
resultado4 = primer_no_repetido(texto4)
print(f"El primer no repetido en '{texto4}' es: {resultado4}")
Explicación de la solución:
from collections import
Counter: Importa la clase Counter del módulo
collections, que es muy útil para contar la frecuencia de los
elementos en una secuencia.
def primer_no_repetido(cadena)::
Define la función que toma la cadena como entrada.
frecuencia_caracteres =
Counter(cadena): Crea un diccionario (Counter)
donde las claves son los caracteres de la cadena y los valores son su
frecuencia de aparición.
for caracter in cadena::
Itera a través de la cadena en el orden en que aparecen los
caracteres. Esto es importante para encontrar el primer no
repetido.
if
frecuencia_caracteres[caracter] == 1:: Para cada carácter,
verifica si su frecuencia en el diccionario frecuencia_caracteres
es igual a 1.
return caracter:
Si se encuentra un carácter con frecuencia 1, la función lo devuelve
inmediatamente, ya que es el primer no repetido que se encuentra en el orden
de la cadena.
return None: Si
el bucle termina sin encontrar ningún carácter con una frecuencia de 1,
significa que todos los caracteres en la cadena se repiten, por lo que la
función devuelve None.
¡Intenta implementar esta función y probarla con
los ejemplos proporcionados en el "Ejecutor de Python Interactivo"! ¿Qué
resultados obtienes? Recuerda que es sensible a mayúsculas y minúsculas.