logo

Program Python za iskanje razlike med dvema nizoma

V tej vadnici bomo napisali program Python za iskanje razlike med podanima nizoma. Ta problem se lahko vpraša v intervjuju. Razumejmo izjavo problema in nato pristopimo k rešitvi.

Izjava o težavi -

Podani sta dve vrvici s in t. Niz t se ustvari z naključnim mešanjem niza s in nato doda še en znak na poljubno naključno mesto. Napisati moramo program Python, ki vrne dodano črko t.

Primer -

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

Primer -

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

Omejitve:

Upoštevati je treba naslednje omejitve -

ustvarjanje Oracle tabele
  • 0<= s.length <='1000</li'>
  • t.dolžina == s.dolžina + 1
  • s in t sta sestavljena iz malih angleških črk.

Program Python

Razumejmo naslednji program Python.

Primer -

 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) 

Izhod:

excel odstranite prvi znak
 &apos;e&apos; 

Pojasnilo -

V zgornji kodi smo definirali funkcijo findThedifference(), ki sprejme dva niza kot argumenta. Za pretvorbo nizov v seznam smo uporabili razumevanje seznama. Zdaj ponavljamo ls_s seznam, izberite en element in ga odstranite na drugi seznam ls_t. Če so vsi elementi odstranjeni iz drugega elementa, to pomeni, da sta oba podana niza enaka, sicer vrne prvi element drugega seznama.

Rešitev - 2

Poglejmo še eno rešitev 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) 

Izhod:

 e 

Pojasnilo -

V tej vadnici smo uporabili razvrščeno() metoda, ki pretvori niz v seznam znakov na razvrščen način. Ustvarili smo dva seznama nizov in dodali dodaten element kot 0, da je dolžina enaka; sicer bomo indeks seznama dobili izven meja. Zdaj smo ponovili t_list in preverili, ali je s_list element ni enak t_list; če se pogoj ujema, vrne ta element.