logo

Programul Python pentru a găsi diferența între două șiruri

În acest tutorial, vom scrie un program Python pentru a găsi diferența dintre cele două șiruri date. Această problemă poate fi pusă în interviu. Să înțelegem enunțul problemei și apoi ne vom apropia de soluție.

Declarație problemă -

Sunt date două șiruri s și t. Șirul t este generat prin amestecarea aleatorie a șirurilor s și apoi adăugat încă un caracter în orice poziție aleatorie. Trebuie să scriem un program Python care returnează litera adăugată la t.

Exemplu -

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

Exemplu -

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

Constrângeri:

Trebuie respectate următoarele constrângeri -

  • 0<= s.length <='1000</li'>
  • t.lungime == s.lungime + 1
  • s și t constau din litere engleze mici.

Programul Python

Să înțelegem următorul program Python.

Exemplu -

 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) 

Ieșire:

 &apos;e&apos; 

Explicatie -

excel elimina primul caracter

În codul de mai sus, am definit funcția findThedifference() care ia ca argumente două șiruri. Am folosit înțelegerea listei pentru a converti șirurile în listă. Acum, repetăm ls_s listă, alegeți un singur element și eliminați acel element în a doua listă ls_t. Dacă toate elementele sunt eliminate din al doilea element, înseamnă că ambele șiruri date sunt aceleași, altfel returnează primul element din a doua listă.

Soluție - 2

Să vedem o altă soluție a problemei.

 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) 

Ieșire:

 e 

Explicatie -

identificatori validi în java

În acest tutorial, am folosit sortat() metoda, care convertește șirul într-o listă de caractere într-o manieră sortată. Am creat cele două liste de șiruri și am adăugat un element suplimentar ca 0 pentru a egala lungimea; altfel, vom scoate indexul listei în afara limitelor. Acum am repetat lista t_list și am verificat dacă s_list elementul nu este egal cu t_list; dacă condiția este potrivită, returnează acel element.