I den här handledningen kommer vi att skriva ett Python-program för att hitta skillnaden mellan de två givna strängarna. Detta problem kan ställas i intervjun. Låt oss förstå problemformuleringen och sedan närmar vi oss lösningen.
Problembeskrivning -
Det finns två strängar s och t. Sträng t genereras av slumpmässig blandning av sträng s och läggs sedan till ytterligare ett tecken vid valfri slumpmässig position. Vi måste skriva ett Python-program som returnerar bokstaven som lagts till t.
Exempel -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Exempel -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Begränsningar:
Följande begränsningar bör följas -
- 0<= s.length <='1000</li'>
- t.längd == s.längd + 1
- s och t består av små engelska bokstäver. =>
Python-programmet
Låt oss förstå följande Python-program.
Exempel -
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)
Produktion:
'e'
Förklaring -
I koden ovan definierade vi funktionen findThedifference() som tar två strängar som argument. Vi använde listförståelsen för att konvertera strängarna till lista. Nu upprepar vi ls_s lista, välj ett enda element och ta bort det elementet till den andra listan ls_t. Om alla element tas bort från det andra elementet betyder det att båda givna strängarna är samma, annars returneras det första elementet i den andra listan.
Lösning - 2
Låt oss se en annan lösning på problemet.
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)
Produktion:
java-ingång
e
Förklaring -
I den här handledningen använde vi sorterad() metod, som omvandlar strängen till en lista med tecken på ett sorterat sätt. Vi skapade de två listorna med strängar och lade till ett extra element som 0 för att göra längden lika; annars kommer vi att få listindexet utanför ramarna. Nu itererade vi t_listan och kontrollerade om s_list element är inte lika med t_list; om villkoret matchas returnerar det elementet.