Найти в Дзене

😃 Backspace в строках: как эмулировать поведение текстового редактора

😃 Backspace в строках: как эмулировать поведение текстового редактора? Представьте, что вы набираете текст, но каждый символ # — это Backspace. А теперь представьте, что у вас две такие строки. Нужно узнать, будут ли они одинаковыми, если их напечатать в редакторе. s = "ab#c" → "ac" t = "ad#c" → "ac" Результат: True ✅ 😎 Решение через стек (stack) 1. Мы просто проходим по строке и: 2. Добавляем символ в стек, если это обычная буква. 3. Удаляем последний символ из стека, если встречаем #. def backspaceCompare(s: str, t: str) -> bool: def clean(st): stack = [] for ch in st: if ch == '#' and stack: stack.pop() elif ch != '#': stack.append(ch) return stack return clean(s) == clean(t) 😎 Почему это важно? 1. Такой подход — частый гость на собеседованиях: 2. Проверяет знание структур данных.

😃 Backspace в строках: как эмулировать поведение текстового редактора?

Представьте, что вы набираете текст, но каждый символ # — это Backspace. А теперь представьте, что у вас две такие строки. Нужно узнать, будут ли они одинаковыми, если их напечатать в редакторе.

s = "ab#c" → "ac"

t = "ad#c" → "ac"

Результат: True ✅

😎 Решение через стек (stack)

1. Мы просто проходим по строке и:

2. Добавляем символ в стек, если это обычная буква.

3. Удаляем последний символ из стека, если встречаем #.

def backspaceCompare(s: str, t: str) -> bool:

def clean(st):

stack = []

for ch in st:

if ch == '#' and stack:

stack.pop()

elif ch != '#':

stack.append(ch)

return stack

return clean(s) == clean(t)

😎 Почему это важно?

1. Такой подход — частый гость на собеседованиях:

2. Проверяет знание структур данных.