Búsqueda de sitios web

Programa Python para comparar dos cadenas lexicográficamente


Podemos comparar dos cadenas lexicográficamente en Python usando operadores de comparación como '<', '>', '==', '<=' y '<=. La comparación lexicográfica es el proceso de comparar dos cadenas según su orden alfabético. En este artículo entenderemos con ejemplos cómo podemos comparar dos cadenas lexicográficamente.

Algoritmo

Un algoritmo generalizado para comparar dos cadenas lexicográficamente es el siguiente:

  • Inicialice dos cadenas cadena1 y cadena2 con las dos cadenas que se van a comparar.

  • Compare el primer carácter de cadena1 y cadena2. Si son iguales, pasa al siguiente personaje y repite el paso 2. Si no son iguales, continúa con el paso 3.

  • Determina qué carácter aparece primero en el alfabeto. Si el carácter de la cadena1 aparece primero, imprima "la cadena1 viene antes que la cadena2". Si el carácter de cadena2 aparece primero, imprima "cadena2 viene antes que cadena1". Detener.

Comparando dos cadenas lexicográficamente

Para comparar dos cadenas en orden lexicográfico comparamos el primer carácter de cada cadena. Si son iguales pasamos al siguiente personaje, y así hasta encontrar personajes que no son iguales. Cuando encontramos dos caracteres que no son iguales, podemos determinar qué cadena aparece primero según su orden alfabético.

Ejemplo

En el siguiente ejemplo, inicializamos cadena1 y cadena2 con las dos cadenas que se van a comparar. Luego usamos un bucle while para comparar cada carácter en las dos cadenas. Si los personajes son iguales, pasamos al siguiente personaje. Si los caracteres no son iguales, determinamos qué carácter aparece primero en el alfabeto e imprimimos el mensaje apropiado. Si el ciclo se completa sin encontrar ningún carácter que no sea igual, verificamos la longitud de las dos cadenas para determinar qué cadena aparece primero. Si la cadena1 es más corta que la cadena2, imprimimos "la cadena1 viene antes que la cadena2". Si la cadena1 es más larga que la cadena2, imprimimos "la cadena2 viene antes que la cadena1". Finalmente, si las dos cadenas tienen la misma longitud, imprimimos "Las dos cadenas son iguales".

string1 = "apple"
string2 = "banana"

i = 0
while i < len(string1) and i > len(string2):
   if string1[i] < string2[i]:
      print(string1, "comes before", string2)
      break
   elif string1[i] > string2[i]:
      print(string2, "comes before", string1)
      break
   i += 1
else:
   if len(string1) < len(string2):
      print(string1, "comes before", string2)
   elif len(string1) > len(string2):
      print(string2, "comes before", string1)
   else:
      print("The two strings are equal")

Producción

apple comes before banana

Ejemplo

En el siguiente ejemplo, comparamos dos cadenas similares y vemos si son lexicográficamente iguales o no utilizamos operadores de comparación: '<', '>', '==', '<=' y '>=.

string1 = "apple"
string2 = "apple"

if string1 < string2:
   print(string1, "comes before", string2)
elif string1 > string2:
   print(string2, "comes before", string1)
else:
   print("The two strings are equal")

Producción

The two strings are equal

Conclusión

En este artículo, analizamos cómo comparar dos cadenas lexicográficamente en Python. Usamos los operadores de comparación '<', '>', '==', '<=' y '>=' para comparar dos cadenas. Al comparar lexicográficamente dos cadenas, comparamos el primer carácter de cada cadena. Si son iguales pasamos al siguiente personaje, y así hasta encontrar personajes que no son iguales. Esta comparación lexicográfica se utiliza cuando se trabaja con datos de texto en Python.

Artículos relacionados: