Solución al Ejercicio: Intersección de caracteres
📋 Copiar código
def interseccion_caracteres(cadena1, cadena2):
"""
Encuentra los caracteres comunes entre dos cadenas.
Args:
cadena1: La primera cadena.
cadena2: La segunda cadena.
Returns:
Una cadena con los caracteres que están presentes en ambas cadenas,
sin repeticiones y en orden alfabético.
"""
conjunto1 = set(cadena1)
conjunto2 = set(cadena2)
caracteres_comunes = sorted(list(conjunto1.intersection(conjunto2)))
return "".join(caracteres_comunes)
# Ejemplos de uso
cadena_a = "abcdefg"
cadena_b = "cdefghij"
comunes1 = interseccion_caracteres(cadena_a, cadena_b)
print(f"Intersección de caracteres entre '{cadena_a}' y '{cadena_b}': '{comunes1}'")
cadena_c = "python"
cadena_d = "java"
comunes2 = interseccion_caracteres(cadena_c, cadena_d)
print(f"Intersección de caracteres entre '{cadena_c}' y '{cadena_d}': '{comunes2}'")
cadena_e = "aabbc"
cadena_f = "abccdd"
comunes3 = interseccion_caracteres(cadena_e, cadena_f)
print(f"Intersección de caracteres entre '{cadena_e}' y '{cadena_f}': '{comunes3}'")
cadena_g = "hola"
cadena_h = "mundo"
comunes4 = interseccion_caracteres(cadena_g, cadena_h)
print(f"Intersección de caracteres entre '{cadena_g}' y '{cadena_h}': '{comunes4}'")
cadena_i = ""
cadena_j = "algo"
comunes5 = interseccion_caracteres(cadena_i, cadena_j)
print(f"Intersección de caracteres entre '{cadena_i}' y '{cadena_j}': '{comunes5}'")
Explicación del Código:
-
Definición de la función
interseccion_caracteres(cadena1, cadena2)
:
- Se define una función llamada
interseccion_caracteres
que toma dos cadenas, cadena1
y cadena2
, como argumentos.
-
Creación de conjuntos de caracteres:
conjunto1 = set(cadena1)
:
Se crea un conjunto (set
) a partir de los caracteres de
cadena1
. Los conjuntos eliminan automáticamente los
duplicados, por lo que conjunto1
contendrá los caracteres
únicos de cadena1
.
conjunto2 = set(cadena2)
: De
manera similar, se crea un conjunto (set
) con los
caracteres únicos de cadena2
.
-
Encontrar la intersección de los
conjuntos:
caracteres_comunes =
sorted(list(conjunto1.intersection(conjunto2)))
:
conjunto1.intersection(conjunto2)
encuentra los elementos
(caracteres) que están presentes en ambos conjunto1
y
conjunto2
. El resultado es otro conjunto que contiene
solo los caracteres comunes.
list(...)
convierte
este conjunto de caracteres comunes en una lista para poder
ordenarla.
sorted(...)
ordena la
lista de caracteres comunes alfabéticamente.
-
Unir los caracteres comunes en una
cadena:
return "".join(caracteres_comunes)
:
Se utiliza el método join()
para unir los caracteres de la
lista ordenada caracteres_comunes
en una sola cadena. La
cadena vacía ""
se utiliza como separador, lo que significa
que los caracteres se concatenarán directamente sin ningún carácter
entre ellos.
-
Retorno de la cadena de caracteres
comunes:
- La función devuelve una cadena que
contiene los caracteres que son comunes a ambas cadenas de entrada, sin
repeticiones y en orden alfabético.
-
Ejemplos de uso:
- Se proporcionan varios ejemplos de cómo
utilizar la función con diferentes pares de cadenas, incluyendo casos
con intersecciones parciales, intersecciones vacías y cadenas con
caracteres repetidos.
- Para cada ejemplo, se imprime la cadena
resultante que contiene los caracteres comunes.