logo

Python-ohjelma löytää ero kahden merkkijonon välillä

Tässä opetusohjelmassa kirjoitamme Python-ohjelman löytääksemme eron kahden annetun merkkijonon välillä. Tätä ongelmaa voi kysyä haastattelussa. Ymmärrämme ongelman lauseen ja sitten lähestymme ratkaisua.

Ongelmailmoitus -

On annettu kaksi merkkijonoa s ja t. Merkkijono t luodaan satunnaisesti sekoittamalla merkkijonoa s ja sitten lisätään yksi merkki mihin tahansa satunnaiseen kohtaan. Meidän on kirjoitettava Python-ohjelma, joka palauttaa lisätyn kirjaimen t.

Esimerkki -

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

Esimerkki -

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

Rajoitukset:

Seuraavia rajoituksia tulee noudattaa -

  • 0<= s.length <='1000</li'>
  • t.length == s.length + 1
  • s ja t koostuvat englannin pienistä kirjaimista.

Python ohjelma

Ymmärretään seuraava Python-ohjelma.

Esimerkki -

25/100
 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) 

Lähtö:

mysql ei ole sama
 &apos;e&apos; 

Selitys -

Yllä olevassa koodissa määritimme findThedifference()-funktion, joka ottaa argumenteiksi kaksi merkkijonoa. Käytimme luettelon ymmärtämistä merkkijonojen muuntamiseen luetteloiksi. Nyt toistellaan ls_s luettelosta, valitse yksi elementti ja poista se toisesta luettelosta ls_t. Jos kaikki elementit poistetaan toisesta elementistä, se tarkoittaa, että molemmat annetut merkkijonot ovat samat, muussa tapauksessa palauta toisen luettelon ensimmäinen elementti.

Ratkaisu - 2

Katsotaanpa toinen ratkaisu ongelmaan.

 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) 

Lähtö:

 e 

Selitys -

Tässä opetusohjelmassa käytimme lajiteltu() menetelmä, joka muuntaa merkkijonon merkkiluetteloksi lajiteltuna. Loimme kaksi merkkijonoluetteloa ja lisäsimme ylimääräisen elementin 0:ksi, jotta pituus olisi yhtä suuri; Muutoin saamme luetteloindeksin rajojen ulkopuolelle. Nyt toistimme t_listin ja tarkistimme, onko s_list elementti ei ole yhtä suuri kuin t_list; jos ehto täyttyy, se palauttaa kyseisen elementin.