Šajā apmācībā mēs uzrakstīsim Python programmu, lai atrastu atšķirību starp divām dotajām virknēm. Šo problēmu var uzdot intervijā. Sapratīsim problēmas izklāstu un tad ķersimies pie risinājuma.
Problēmas paziņojums -
Ir dotas divas stīgas s un t. Virkne t tiek ģenerēta, nejauši sajaucot virkni s, un pēc tam tiek pievienota vēl viena rakstzīme jebkurā nejaušā vietā. Mums ir jāraksta Python programma, kas atgriež pievienoto burtu t.
Piemērs -
lejupielādēt autocad 2019 angļu mediafire
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Piemērs -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Ierobežojumi:
Jāievēro šādi ierobežojumi -
- 0<= s.length <='1000</li'>
- t.garums == s.garums + 1
- s un t sastāv no mazajiem angļu burtiem. =>
Python programma
Sapratīsim šo Python programmu.
Piemērs -
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)
Izvade:
bloķēt youtube reklāmas Android
'e'
Paskaidrojums -
Iepriekš minētajā kodā mēs definējām funkciju findThedifference(), kas kā argumentus izmanto divas virknes. Mēs izmantojām saraksta izpratni, lai pārvērstu virknes sarakstā. Tagad mēs atkārtojam ls_s sarakstā, izvēlieties vienu elementu un noņemiet šo elementu no otrā saraksta ls_t. Ja visi elementi ir noņemti no otrā elementa, tas nozīmē, ka abas dotās virknes ir vienādas, pretējā gadījumā atgrieziet otrā saraksta pirmo elementu.
Risinājums - 2
Apskatīsim citu problēmas risinājumu.
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)
Izvade:
e
Paskaidrojums -
Šajā apmācībā mēs izmantojām sakārtots() metode, kas pārvērš virkni sakārtotā veidā rakstzīmju sarakstā. Mēs izveidojām divus virkņu sarakstus un pievienojām papildu elementu kā 0, lai garums būtu vienāds; pretējā gadījumā saraksta indekss tiks pārkāpts. Tagad mēs atkārtojām t_list un pārbaudījām, vai s_list elements nav vienāds ar t_list; ja nosacījums ir saskaņots, tas atgriež šo elementu.