In diesem Tutorial schreiben wir ein Python-Programm, um den Unterschied zwischen den beiden angegebenen Zeichenfolgen zu ermitteln. Dieses Problem kann im Interview gestellt werden. Lassen Sie uns die Problemstellung verstehen und dann an die Lösung herangehen.
Problemstellung -
Es sind zwei Zeichenfolgen angegeben S Und T. Die Zeichenfolge t wird durch zufälliges Mischen der Zeichenfolge s generiert und dann an einer beliebigen zufälligen Position ein weiteres Zeichen hinzugefügt. Wir müssen ein Python-Programm schreiben, das den hinzugefügten Buchstaben zurückgibt T.
Beispiel -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Beispiel -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Einschränkungen:
Die folgenden Einschränkungen sollten beachtet werden:
- 0<= s.length <='1000</li'>
- t.length == s.length + 1
- s und t bestehen aus englischen Kleinbuchstaben. =>
Python-Programm
Lassen Sie uns das folgende Python-Programm verstehen.
Beispiel -
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)
Ausgabe:
'e'
Erläuterung -
Im obigen Code haben wir die Funktion findThedifference() definiert, die zwei Zeichenfolgen als Argumente akzeptiert. Wir haben das Listenverständnis verwendet, um die Zeichenfolgen in Listen umzuwandeln. Jetzt iterieren wir ls_s Liste, wählen Sie ein einzelnes Element aus und entfernen Sie dieses Element aus der zweiten Liste ls_t. Wenn alle Elemente aus dem zweiten Element entfernt werden, bedeutet dies, dass beide angegebenen Zeichenfolgen gleich sind. Andernfalls wird das erste Element der zweiten Liste zurückgegeben.
Lösung - 2
Sehen wir uns eine andere Lösung des Problems an.
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)
Ausgabe:
e
Erläuterung -
In diesem Tutorial haben wir das verwendet sortiert() Methode, die die Zeichenfolge in eine sortierte Liste von Zeichen umwandelt. Wir haben die beiden String-Listen erstellt und ein zusätzliches Element als 0 hinzugefügt, um die Länge gleich zu machen; Andernfalls wird der Listenindex außerhalb der Grenzen liegen. Jetzt haben wir die t_list iteriert und geprüft, ob die s_list Element ist nicht gleich t_list; Wenn die Bedingung erfüllt ist, wird dieses Element zurückgegeben.