Определить сколько скобок в строке не имеют пары
Дана строка со скобочной последовательностью. Нужно определить сколько неправильно расставлено скобок(неправильные скобки - скобки у которых нет пары). Я пытался сделать это сам просто банальным способом
for i in range(len(st)):
if st[i] == '(':
k += 1
elif st[i] == ')':
k -= 1
Но это все рушится если последовательность выглядит так: ))(( или так ()))(( или так ))((() Лучше до сих пор не придумал..
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
k = 0
wrong = 0
for s in st:
if s == '(':
k += 1
elif s == ')':
if k == 0: # попытка закрыть скобку, которая не открывалась
wrong += 1
else:
k -= 1
if k > 0: # открытые скобки, которые остались не закрыты
wrong += k
print(wrong)