logo

Programa Python para encontrar la diferencia entre dos cadenas

En este tutorial, escribiremos un programa Python para encontrar la diferencia entre las dos cadenas dadas. Este problema se puede plantear en la entrevista. Entendamos el planteamiento del problema y luego nos acercaremos a la solución.

Planteamiento del problema -

Hay dos cadenas dadas. s y t. La cadena t se genera mezclando aleatoriamente cadenas s y luego se agrega un carácter más en cualquier posición aleatoria. Necesitamos escribir un programa Python que devuelva la letra agregada a t.

Ejemplo -

 Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added. 

Ejemplo -

'abc's en números'
 Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added. 

Restricciones:

conversión de int a cadena en java

Se deben seguir las siguientes restricciones:

  • 0<= s.length <='1000</li'>
  • t.longitud == s.longitud + 1
  • s y t constan de letras inglesas minúsculas.

Programa Python

Entendamos el siguiente programa Python.

Ejemplo -

 class Solution(object): def findTheDifference(self, s, t): ls_s = [s[i] for i in range(len(s))] ls_t = [t[i] for i in range(len(t))] for elem in ls_s: ls_t.remove(elem) return(ls_t[0]) obj = Solution() s = &apos;zxyc&apos; t = &apos;zxyce&apos; print(obj.findTheDifference(s, t) 

Producción:

 &apos;e&apos; 

Explicación -

En el código anterior, definimos la función findThedifference() que toma dos cadenas como argumentos. Usamos la comprensión de listas para convertir las cadenas en listas. Ahora iteramos ls_s lista, elija un solo elemento y elimine ese elemento a la segunda lista ls_t. Si se eliminan todos los elementos del segundo elemento, significa que ambas cadenas dadas son iguales; de lo contrario, se devuelve el primer elemento de la segunda lista.

Solución - 2

tabla ascii en c

Veamos otra solución del problema.

código abs c
 class Solution: def findTheDifference(self, s: str, t: str) -&gt; str: #sort both the strings s_list = sorted(s) t_list = sorted(t) s_list.append(0) #to make the length equal else we will get list index out of bounds (1 extra char in string2) for i in range(len(t_list)): if s_list[i] != t_list[i]: #if character at i not same for both the strings, we get our answer return t_list[i] obj = Solution() s = &apos;zxyc&apos; t = &apos;zxyce&apos; print(obj.findTheDifference(s, t) 

Producción:

 e 

Explicación -

En este tutorial, utilizamos el ordenado() método, que convierte la cadena en una lista de caracteres de forma ordenada. Creamos las dos listas de cadenas y agregamos un elemento adicional como 0 para que la longitud sea igual; de lo contrario, sacaremos el índice de la lista de los límites. Ahora repetimos t_list y verificamos si el lista_s el elemento no es igual a t_list; si la condición coincide, devuelve ese elemento.