3 usuarios conectados

Intersección de caracteres. Ejercicio en Python

Comparte esto

 

Escribe una función en Python llamada interseccion_caracteres que tome dos cadenas como entrada y devuelva una nueva cadena que contenga solo los caracteres que están presentes en ambas cadenas, sin repeticiones y en orden alfabético.



Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.