На данный вопрос уже ответили:
Проверить правильно ли вложены скобки 〈 ( { [ ] } ) 〉в тексте
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
Комментариев нет:
Отправить комментарий