logo

Програма Python за намиране на разлика между два низа

В този урок ще напишем програма на Python, за да намерим разликата между двата дадени низа. Този проблем може да бъде зададен в интервюто. Нека разберем постановката на проблема и след това ще подходим към решението.

Постановка на проблема -

Дадени са два низа с и T. Низ t се генерира чрез произволно разбъркване на низ s и след това се добавя още един знак на произволна позиция. Трябва да напишем програма на Python, която връща добавената буква T.

пример -

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

пример -

base64 javascript декодиране
 Input: s = 'uvw', t = 'wyu' Output: 'y' Explanation: 'e' is the letter that was added. 

Ограничения:

excel премахнете първия знак

Трябва да се спазват следните ограничения -

  • 0<= s.length <='1000</li'>
  • t.length == s.length + 1
  • s и t се състоят от малки английски букви.

Програма Python

Нека разберем следната програма на Python.

пример -

 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) 

Изход:

 &apos;e&apos; 

Обяснение -

В горния код дефинирахме функцията findThedifference(), която приема два низа като аргументи. Използвахме разбирането на списъка, за да преобразуваме низовете в списък. Сега повтаряме ls_s списък, изберете единичен елемент и го премахнете във втория списък ls_t. Ако всички елементи са премахнати от втория елемент, това означава, че и двата дадени низа са еднакви, в противен случай връща първия елемент от втория списък.

Решение - 2

groovy компютърен език

Нека да видим друго решение на проблема.

преобразуване на булево в низ
 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) 

Изход:

 e 

Обяснение -

В този урок използвахме сортиран() метод, който преобразува низа в списък от знаци по сортиран начин. Създадохме двата списъка с низове и добавихме допълнителен елемент като 0, за да направим дължината еднаква; в противен случай ще изведем индекса на списъка извън границите. Сега повторихме t_list и проверихме дали s_списък елементът не е равен на t_list; ако условието е изпълнено, то връща този елемент.