Bu dersimizde verilen iki string arasındaki farkı bulan bir Python programı yazacağız. Bu sorun röportajda sorulabilir. Sorun ifadesini anlayalım ve ardından çözüme yaklaşacağız.
.tif dosyası
Sorun bildirimi -
Verilen iki dize var S Ve T. String t, string s'nin rastgele karıştırılmasıyla üretilir ve ardından herhangi bir rastgele konuma bir karakter daha eklenir. Eklenen harfi döndüren bir Python programı yazmamız gerekiyor. T.
Örnek -
Input: s = 'zxyc', t = 'zxyce' Output: 'e' Explanation: 'e' is the letter that was added.
Örnek -
Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added.
Kısıtlamalar:
npm önbellek temizleme
Aşağıdaki kısıtlamalara uyulmalıdır:
- 0<= s.length <='1000</li'>
- t.uzunluk == s.uzunluk + 1
- s ve t küçük İngilizce harflerden oluşur. =>
Python Programı
Aşağıdaki Python programını anlayalım.
Örnek -
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)
Çıktı:
'e'
Açıklama -
Yukarıdaki kodda, iki dizeyi argüman olarak alan findThedifference() işlevini tanımladık. Dizeleri listeye dönüştürmek için liste anlayışını kullandık. Şimdi yineliyoruz ls_s liste, tek bir öğe seçin ve bu öğeyi ikinci listeye kaldırın öyle değil. İkinci öğeden tüm öğeler kaldırılırsa, bu, verilen her iki dizenin de aynı olduğu anlamına gelir, aksi takdirde ikinci listenin ilk öğesini döndürür.
Çözüm - 2
java renk kodları
Sorunun başka bir çözümüne bakalım.
dizeye karakter
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)
Çıktı:
e
Açıklama -
Bu eğitimde, şunları kullandık: sıralanmış() Dizeyi sıralı bir şekilde karakter listesine dönüştüren yöntem. İki dizi listesi oluşturduk ve uzunluğu eşitlemek için 0 olarak ekstra bir öğe ekledik; aksi halde liste indeksini sınırların dışına çıkaracağız. Şimdi t_list'i yineledik ve kontrol ettik. s_listesi eleman t_list'e eşit değil; koşul eşleşirse o öğeyi döndürür.