У цьому підручнику ми напишемо програму 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 = 'zxyc' t = 'zxyce' print(obj.findTheDifference(s, t)
Вихід:
'e'
Пояснення -
масив у java
У наведеному вище коді ми визначили функцію findThedifference(), яка приймає два рядки як аргументи. Ми використали розуміння списку, щоб перетворити рядки на список. Тепер ми повторюємо ls_s виберіть один елемент і видаліть цей елемент до другого списку ls_t. Якщо всі елементи видалені з другого елемента, це означає, що обидва подані рядки однакові, інакше повертає перший елемент другого списку.
Рішення - 2
Подивимося на інше рішення задачі.
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)
Вихід:
e
Пояснення -
c#
У цьому підручнику ми використовували відсортовано() метод, який перетворює рядок у відсортований список символів. Ми створили два списки рядків і додали додатковий елемент як 0, щоб зробити довжину рівною; інакше ми виведемо індекс списку за межі. Тепер ми повторили t_list і перевірили, чи s_list елемент не дорівнює t_list; якщо умова відповідає, він повертає цей елемент.