Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Это классическая задача на стек. Будем проходиться по строке слева направо, складывая на стек все открывающиеся скобки. Каждую закрывающуюся скобку будем сравнивать с верхней на стеке, если они составляют пару, то удалим скобку со стека, если же нет, то скобочная последовательность неправильная. После прохода по строке, если стек пустой, то это псп, иначе у нас остались незакрытые скобки. Алгоритм не очень интуитивный, попробуйте разобрать его на разных тестах.
- Пример кода на python:
- s = input()
- q = []
- for e in s:
- if e in '[{(':
- q.append(e)
- continue
- if len(q) == 0:
- print('NO')
- exit(0)
- if q[-1] + e in ['()', '[]', '{}']:
- q.pop()
- else:
- print('NO')
- exit(0)
- if len(q) == 0:
- print('YES')
- else:
- print('NO')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement