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 = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Producción:
'e'
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) -> 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 = 'zxyc' t = 'zxyce' 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.