logo

Python program za pronalaženje razlike između dva niza

U ovom vodiču ćemo napisati Python program za pronalaženje razlike između dva navedena niza. Ovaj problem se može postaviti u intervjuu. Razumimo izjavu problema i onda ćemo pristupiti rješenju.

Izjava problema -

Zadana su dva niza s i t. Niz t generira se nasumičnim miješanjem niza s, a zatim se dodaje još jedan znak na bilo kojoj nasumičnoj poziciji. Moramo napisati Python program koji vraća dodano slovo t.

Primjer -

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

Primjer -

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

Ograničenja:

obilazak stabla

Treba se pridržavati sljedećih ograničenja -

  • 0<= s.length <='1000</li'>
  • t.duljina == s.duljina + 1
  • s i t sastoje se od malih engleskih slova.

Python program

Hajdemo razumjeti sljedeći Python program.

Primjer -

 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) 

Izlaz:

niz u Javi
 &apos;e&apos; 

Objašnjenje -

U gornjem kodu definirali smo funkciju findThedifference() koja uzima dva niza kao argumente. Koristili smo razumijevanje popisa za pretvaranje nizova u popis. Sada ponavljamo ls_s popis, odaberite jedan element i uklonite taj element na drugi popis ls_t. Ako su svi elementi uklonjeni iz drugog elementa, to znači da su oba navedena niza ista, u suprotnom vraća prvi element druge liste.

Rješenje - 2

Pogledajmo drugo rješenje 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) 

Izlaz:

 e 

Objašnjenje -

U ovom vodiču koristili smo poredano() metoda, koja pretvara niz u popis znakova na sortirani način. Napravili smo dva popisa nizova i dodali dodatni element kao 0 kako bi duljina bila jednaka; inače ćemo indeks popisa izvući izvan granica. Sada smo ponovili t_list i provjerili je li s_popis element nije jednak t_list; ako se uvjet podudara, vraća taj element.