Comparar dos cadenas carácter por carácter en Python

Vaibhav Vaibhav 22 enero 2022
Comparar dos cadenas carácter por carácter en Python

Python es un lenguaje de propósito general que hace que trabajar con datos de tipo entero, tipo de cadena, tipo flotante, tipo doble, etc., sea una tarea relativamente fluida con su sintaxis fácil de entender y API robustas que funcionan detrás de escena.

Este artículo hablará sobre algunas de estas tareas que involucran cadenas. Y la tarea es comparar dos cadenas, carácter por carácter, usando Python.

Comparar cadenas carácter por carácter en Python

En Python, podemos comparar dos cadenas, carácter por carácter, usando un bucle for o un bucle while.

Dado que dos cadenas pueden tener diferentes longitudes, debemos asegurarnos de que solo consideramos la longitud más pequeña para iterar sobre las cadenas para la comparación. A modo de comparación, contaríamos el número de los mismos caracteres en ambas cadenas que se encuentran en los mismos índices.

Tenga en cuenta que esta es solo una forma de comparar dos cadenas.

Se puede contar la frecuencia de cada carácter presente en una cadena para comparar o calcular la distancia de Hamming. La distancia de Hamming es el número de índices donde los caracteres de las cadenas son diferentes.

El siguiente código de Python implementa lo que hablamos anteriormente.

def compare_strings(a, b):
    if a is None or b is None:
        print("Number of Same Characters: 0")
        return

    size = min(len(a), len(b))  # Finding the minimum length
    count = 0  # A counter to keep track of same characters

    for i in range(size):
        if a[i] == b[i]:
            count += 1  # Updating the counter when characters are same at an index

    print("Number of Same Characters:", count)


compare_strings("homophones", "homonyms")
compare_strings("apple", "orange")
compare_strings("apple", "applepie")
compare_strings("pasta", "pizza")
compare_strings(None, None)
compare_strings(None, "valorant")
compare_strings("minecraft", None)

Producción :

Number of Same Characters: 4
Number of Same Characters: 0
Number of Same Characters: 5
Number of Same Characters: 2
Number of Same Characters: 0
Number of Same Characters: 0
Number of Same Characters: 0

La complejidad de tiempo del código anterior es O(n), y la complejidad del espacio es O(1) ya que solo estamos almacenando el recuento y la longitud mínima.

El código anterior utiliza un bucle for. Como se mencionó anteriormente, también podemos usar un bucle while para implementar la misma funcionalidad. Consulte el siguiente código para el mismo.

def compare_strings(a, b):
    if a is None or b is None:
        print("Number of Same Characters: 0")
        return

    size = min(len(a), len(b))  # Finding the minimum length
    count = 0  # A counter to keep track of same characters
    i = 0

    while i < size:
        if a[i] == b[i]:
            count += 1  # Updating the counter when characters are same at an index

        i += 1

    print("Number of Same Characters:", count)


compare_strings("homophones", "homonyms")
compare_strings("apple", "orange")
compare_strings("apple", "applepie")
compare_strings("pasta", "pizza")
compare_strings(None, None)
compare_strings(None, "valorant")
compare_strings("minecraft", None)

Producción :

Number of Same Characters: 4
Number of Same Characters: 0
Number of Same Characters: 5
Number of Same Characters: 2
Number of Same Characters: 0
Number of Same Characters: 0
Number of Same Characters: 0

La complejidad temporal del código anterior es O(n), y la complejidad espacial es O(1), ya que solo estamos almacenando el recuento y la longitud mínima.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python String