logo

Program Python pro nalezení rozdílu mezi dvěma řetězci

V tomto tutoriálu napíšeme program Python, abychom našli rozdíl mezi dvěma danými řetězci. Na tento problém se lze zeptat v rozhovoru. Porozumíme zadání problému a poté přistoupíme k řešení.

Problémové prohlášení -

Jsou dány dva řetězce s a t. Řetězec t je generován náhodným mícháním řetězců s a poté je přidán další znak na libovolné náhodné pozici. Potřebujeme napsat program Python, který vrátí písmeno přidané t.

Příklad -

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

Příklad -

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

Omezení:

Je třeba dodržovat následující omezení -

  • 0<= s.length <='1000</li'>
  • t.délka == s.délka + 1
  • s a t se skládají z malých anglických písmen.

Program Python

Pojďme pochopit následující program Python.

Pří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ýstup:

 &apos;e&apos; 

Vysvětlení -

Ve výše uvedeném kódu jsme definovali funkci findThedifference(), která přebírá dva řetězce jako argumenty. K převodu řetězců na seznam jsme použili porozumění seznamu. Nyní opakujeme ls_s vyberte jeden prvek a odeberte jej do druhého seznamu ls_t. Pokud jsou všechny prvky odstraněny z druhého prvku, znamená to, že oba uvedené řetězce jsou stejné, jinak vrátí první prvek druhého seznamu.

ukázkové programy java

Řešení - 2

Podívejme se na další řešení 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ýstup:

 e 

Vysvětlení -

V tomto tutoriálu jsme použili seřazeno() metoda, která převádí řetězec na seznam znaků seřazeným způsobem. Vytvořili jsme dva seznamy řetězců a přidali další prvek jako 0, aby byla délka stejná; jinak dostaneme index seznamu mimo meze. Nyní jsme iterovali t_list a zkontrolovali, zda je s_list prvek se nerovná t_list; pokud je podmínka splněna, vrátí tento prvek.