Превышен лимит исполнения программы
Написал программу для такой задачи: есть скобочная последовательность из скобок разных типов, количество типов не ограничено. Открывающая скобка i-го типа обозначается как [(i, закрывающая – как ])i, типы нумеруются с 1. Нужно проверять инпут на правильную последовательность скобок. Но это не так важно. Почему-то после ввода последовательности программа не запускается и бесконечно грузится. Что тут может быть не так?
s = input()
stack = []
c = 0
while c < len(s)-1:
tally = 0
if s[c] == '[':
c+=1
while c != len(s) and s[c] == '(':
tally, c = tally+1, c+1
stack.append(tally)
if s[c] == ']':
c+=1
elif len(stack) == 0:
stack.append('d')
break
while c != len(s) and s[c] == ')':
tally, c = tally+1, c+1
if tally != stack[-1]:
break
stack.pop()
else:
break
if len(stack) == 0:
print("YES")
else:
print("NO")