logo

Program Python na nájdenie rozdielu medzi dvoma reťazcami

V tomto návode napíšeme program Python, aby sme našli rozdiel medzi dvoma danými reťazcami. Tento problém možno položiť v rozhovore. Pochopme problémové vyhlásenie a potom pristúpime k riešeniu.

Vyhlásenie o probléme -

Sú dané dva reťazce s a t. Reťazec t sa vygeneruje náhodným premiešaním reťazcov s a potom sa pridá jeden ďalší znak na ľubovoľnú náhodnú pozíciu. Musíme napísať program Python, ktorý vráti pridané písmeno t.

Príklad -

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

Príklad -

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

Obmedzenia:

Mali by sa dodržiavať nasledujúce obmedzenia -

  • 0<= s.length <='1000</li'>
  • t.dĺžka == s.dĺžka + 1
  • s a t pozostávajú z malých anglických písmen.

Program Python

Poďme pochopiť nasledujúci program Python.

Príklad -

 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) 

Výkon:

 &apos;e&apos; 

vysvetlenie -

excel odstrániť prvý znak

Vo vyššie uvedenom kóde sme definovali funkciu findThedifference(), ktorá berie ako argumenty dva reťazce. Na prevod reťazcov na zoznam sme použili porozumenie zoznamu. Teraz opakujeme ls_s vyberte jeden prvok a odstráňte ho do druhého zoznamu ls_t. Ak sú všetky prvky odstránené z druhého prvku, znamená to, že oba uvedené reťazce sú rovnaké, inak vráti prvý prvok druhého zoznamu.

Riešenie - 2

Pozrime sa na iné riešenie problému.

 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) 

Výkon:

 e 

vysvetlenie -

1 milión v číslach

V tomto návode sme použili zoradené () metóda, ktorá konvertuje reťazec na zoznam znakov zoradeným spôsobom. Vytvorili sme dva zoznamy reťazcov a pridali sme ďalší prvok ako 0, aby bola dĺžka rovnaká; inak dostaneme index zoznamu mimo hraníc. Teraz sme iterovali t_list a skontrolovali, či je s_list prvok sa nerovná t_list; ak je podmienka splnená, vráti daný prvok.