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.