logo

Python program két karakterlánc közötti különbség megtalálásához

Ebben az oktatóanyagban egy Python programot fogunk írni, hogy megtaláljuk a különbséget a két megadott karakterlánc között. Ez a probléma feltehető az interjúban. Értsük meg a problémafelvetést, és akkor közeledünk a megoldáshoz.

Probléma nyilatkozat -

Két karakterlánc van megadva s és t. A t karakterláncot az s karakterlánc véletlenszerű keverésével állítják elő, majd tetszőleges helyen adnak hozzá még egy karaktert. Írnunk kell egy Python programot, amely visszaadja a hozzáadott betűt t.

Példa -

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

Példa -

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

Korlátok:

A következő megszorításokat kell betartani:

  • 0<= s.length <='1000</li'>
  • t.hossz == s.hossz + 1
  • s és t kis angol betűkből áll.

Python program

Értsük meg a következő Python programot.

Példa -

 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) 

Kimenet:

 &apos;e&apos; 

Magyarázat -

A fenti kódban meghatároztuk a findThedifference() függvényt, amely két karakterláncot vesz argumentumként. A lista megértését használtuk a karakterláncok listává alakításához. Most ismételjük ls_s listából válasszon ki egyetlen elemet, és távolítsa el azt a második listából ls_t. Ha az összes elemet eltávolítjuk a második elemből, az azt jelenti, hogy mindkét megadott karakterlánc azonos, ellenkező esetben a második lista első elemét adja vissza.

Megoldás - 2

Nézzünk egy másik megoldást a problémára.

 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) 

Kimenet:

 e 

Magyarázat -

Ebben az oktatóanyagban a rendezve() metódus, amely a karakterláncot rendezett módon karakterlistává alakítja. Létrehoztuk a két karakterlánclistát, és hozzáadtunk egy extra elemet 0-val, hogy a hossza egyenlő legyen; különben a listaindexet kilépjük a határokból. Most ismételtük a t_list-et, és ellenőriztük, hogy a s_list elem nem egyenlő a t_list; ha a feltétel egyezik, akkor azt az elemet adja vissza.