logo

Програма Python для пошуку різниці між двома рядками

У цьому підручнику ми напишемо програму Python, щоб знайти різницю між двома заданими рядками. Цю проблему можна поставити на співбесіді. Давайте розберемося в постановці задачі, а потім підійдемо до вирішення.

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

Дано два рядки с і t. Рядок t генерується шляхом випадкового перетасування рядка s, а потім додається ще один символ у будь-якій випадковій позиції. Нам потрібно написати програму на Python, яка повертатиме додану букву t.

приклад -

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

приклад -

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

Обмеження:

Необхідно дотримуватися наступних обмежень:

  • 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; 

Пояснення -

масив у java

У наведеному вище коді ми визначили функцію findThedifference(), яка приймає два рядки як аргументи. Ми використали розуміння списку, щоб перетворити рядки на список. Тепер ми повторюємо ls_s виберіть один елемент і видаліть цей елемент до другого списку ls_t. Якщо всі елементи видалені з другого елемента, це означає, що обидва подані рядки однакові, інакше повертає перший елемент другого списку.

Рішення - 2

Подивимося на інше рішення задачі.

 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 

Пояснення -

c#

У цьому підручнику ми використовували відсортовано() метод, який перетворює рядок у відсортований список символів. Ми створили два списки рядків і додали додатковий елемент як 0, щоб зробити довжину рівною; інакше ми виведемо індекс списку за межі. Тепер ми повторили t_list і перевірили, чи s_list елемент не дорівнює t_list; якщо умова відповідає, він повертає цей елемент.