In deze tutorial zullen we een Python-programma schrijven om het verschil tussen de twee gegeven strings te vinden. Dit probleem kan in het interview worden gesteld. Laten we de probleemstelling begrijpen en dan zullen we naar de oplossing gaan.
Probleemstelling -
Er zijn twee strings gegeven S En T. Tekenreeks t wordt gegenereerd door tekenreeks s willekeurig te schudden en vervolgens op een willekeurige positie nog een teken toe te voegen. We moeten een Python-programma schrijven dat de toegevoegde letter retourneert T.
Voorbeeld -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Voorbeeld -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Beperkingen:
De volgende beperkingen moeten worden gevolgd:
- 0<= s.length <='1000</li'>
- t.lengte == s.lengte + 1
- s en t bestaan uit kleine Engelse letters. =>
Python-programma
Laten we het volgende Python-programma begrijpen.
Voorbeeld -
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)
Uitgang:
'e'
Uitleg -
wat betekent xdxd
In de bovenstaande code hebben we de functie findThedifference() gedefinieerd die twee tekenreeksen als argumenten gebruikt. We hebben het lijstbegrip gebruikt om de tekenreeksen in een lijst om te zetten. Nu herhalen we ls_s lijst, kies één element en verwijder dat element naar de tweede lijst ls_t. Als alle elementen uit het tweede element zijn verwijderd, betekent dit dat beide gegeven strings hetzelfde zijn; anders wordt het eerste element van de tweede lijst geretourneerd.
Oplossing - 2
Laten we een andere oplossing van het probleem bekijken.
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)
Uitgang:
e
Uitleg -
In deze zelfstudie hebben we de gesorteerd() methode, die de string op een gesorteerde manier omzet in een lijst met tekens. We hebben de twee lijsten met strings gemaakt en een extra element als 0 toegevoegd om de lengte gelijk te maken; anders krijgen we de lijstindex buiten de grenzen. Nu hebben we de t_list herhaald en gecontroleerd of de s_lijst element is niet gelijk aan t_list; als aan de voorwaarde wordt voldaan, wordt dat element geretourneerd.