logo

„Python“ programa, skirta rasti skirtumą tarp dviejų eilučių

Šioje pamokoje parašysime Python programą, kad rastume skirtumą tarp dviejų nurodytų eilučių. Šios problemos galima užduoti interviu. Supraskime problemos teiginį ir tada eisime prie sprendimo.

Problemos pareiškimas -

Pateiktos dvi eilutės s ir t. Eilutė t generuojama atsitiktinai maišant eilutę s, o tada bet kurioje atsitiktinėje vietoje pridedamas dar vienas simbolis. Turime parašyti Python programą, kuri grąžina pridėtą raidę t.

Linux pervardyti aplanką

Pavyzdys -

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

Pavyzdys -

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

Apribojimai:

Reikėtų laikytis šių apribojimų -

  • 0<= s.length <='1000</li'>
  • t.ilgis == s.ilgis + 1
  • s ir t susideda iš mažųjų angliškų raidžių.

Python programa

Supraskime šią Python programą.

Pavyzdys -

 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) 

Išvestis:

įmonė prieš įmonę
 &apos;e&apos; 

Paaiškinimas -

Aukščiau pateiktame kode apibrėžėme funkciją findThedifference(), kuri kaip argumentus naudoja dvi eilutes. Norėdami konvertuoti eilutes į sąrašą, naudojome sąrašo supratimą. Dabar kartojame ls_s sąrašą, pasirinkite vieną elementą ir pašalinkite tą elementą iš antrojo sąrašo ls_t. Jei iš antrojo elemento pašalintas visas elementas, tai reiškia, kad abi nurodytos eilutės yra vienodos, kitu atveju grąžinkite pirmąjį antrojo sąrašo elementą.

Sprendimas – 2

Pažiūrėkime į kitą problemos sprendimą.

 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) 

Išvestis:

 e 

Paaiškinimas -

Šioje pamokoje mes naudojome surūšiuota () metodas, kuris paverčia eilutę į simbolių sąrašą rūšiuotu būdu. Sukūrėme du eilučių sąrašus ir pridėjome papildomą elementą kaip 0, kad ilgis būtų lygus; kitu atveju sąrašo indeksas bus peržengtas. Dabar pakartojome t_list ir patikrinome, ar s_sąrašas elementas nėra lygus t_list; jei sąlyga atitinka, jis grąžina tą elementą.