Страницы

Поиск по вопросам

пятница, 19 апреля 2019 г.

Правильная скобочная последовательность стек python [дубликат]

На данный вопрос уже ответили: Проверить правильно ли вложены скобки 〈 ( { [ ] } ) 〉в тексте 2 ответа Всем привет, кто может помочь с реализацией проверки на правильность скобочной последовательности через стек на Python. Суть проверки я знаю, и просто через условия реализовала, но со стеком не могу понять, помогите пожалуйста.
def brackets_check(s): meetings = 0 for c in s: if c == '(': meetings += 1 elif c == ')': meetings -= 1 if meetings < 0: return False
return meetings == 0


Ответ

А мне понравился этот простой и хитрый алгоритм -- главное чтобы строка в нем не имела символом, кроме ()[]{}, там даже объяснять ничего не нужно:
def is_correct_brackets(text): while '()' in text or '[]' in text or '{}' in text: text = text.replace('()', '') text = text.replace('[]', '') text = text.replace('{}', '')
# Возвращаем True, если text с пустой строкой return not text
print(is_correct_brackets('(((())))')) # True print(is_correct_brackets('(((())')) # False print(is_correct_brackets('())))')) # False print(is_correct_brackets('((((){}[]{}[])))')) # True print(is_correct_brackets('(){}[]{}[])))')) # False print(is_correct_brackets('(){}[]{}[]')) # True

Комментариев нет:

Отправить комментарий