Advertisement
nq1s788

Untitled

Oct 27th, 2024
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | None | 0 0
  1. Это классическая задача на стек. Будем проходиться по строке слева направо, складывая на стек все открывающиеся скобки. Каждую закрывающуюся скобку будем сравнивать с верхней на стеке, если они составляют пару, то удалим скобку со стека, если же нет, то скобочная последовательность неправильная. После прохода по строке, если стек пустой, то это псп, иначе у нас остались незакрытые скобки. Алгоритм не очень интуитивный, попробуйте разобрать его на разных тестах.
  2.  
  3. Пример кода на python:
  4. s = input()
  5. q = []
  6. for e in s:
  7.     if e in '[{(':
  8.         q.append(e)
  9.         continue
  10.     if len(q) == 0:
  11.         print('NO')
  12.         exit(0)
  13.     if q[-1] + e in ['()', '[]', '{}']:
  14.         q.pop()
  15.     else:
  16.         print('NO')
  17.         exit(0)
  18. if len(q) == 0:
  19.     print('YES')
  20. else:
  21.     print('NO')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement