logo

Programa Python per trobar la diferència entre dues cadenes

En aquest tutorial, escriurem un programa Python per trobar la diferència entre les dues cadenes donades. Aquest problema es pot preguntar a l'entrevista. Entenem l'enunciat del problema i després ens aproparem a la solució.

Plantejament del problema -

Hi ha dues cadenes donades s i t. La cadena t es genera barrejant aleatòriament la cadena s i després s'afegeix un caràcter més en qualsevol posició aleatòria. Hem d'escriure un programa Python que retorni la lletra a la qual s'ha afegit t.

Exemple -

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

Exemple -

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

Restriccions:

S'han de seguir les següents limitacions:

  • 0<= s.length <='1000</li'>
  • t.longitud == s.longitud + 1
  • s i t consisteixen en lletres angleses minúscules.

Programa Python

Entenem el següent programa Python.

Exemple -

dormir per javascript
 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) 

Sortida:

powershell vs bash
 &apos;e&apos; 

Explicació -

Al codi anterior, hem definit la funció findThedifference() que pren dues cadenes com a arguments. Hem utilitzat la comprensió de llista per convertir les cadenes en llista. Ara, repetim ls_s llista, trieu un sol element i elimineu aquest element a la segona llista ls_t. Si s'elimina tot l'element del segon element, vol dir que les dues cadenes donades són iguals, en cas contrari retorna el primer element de la segona llista.

Solució - 2

Vegem una altra solució del problema.

 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) 

Sortida:

 e 

Explicació -

En aquest tutorial, hem utilitzat el ordenat () mètode, que converteix la cadena en una llista de caràcters de manera ordenada. Hem creat les dues llistes de cadenes i hem afegit un element addicional com a 0 per fer que la longitud sigui igual; en cas contrari, aconseguirem l'índex de la llista fora dels límits. Ara hem repetit la t_list i hem comprovat si s_lista element no és igual a t_list; si la condició coincideix, retorna aquest element.