Š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 = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Išvestis:
įmonė prieš įmonę
'e'
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) -> 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 = 'zxyc' t = 'zxyce' 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ą.