Проверка правильной скобочной последовательности код выдает непонятную ошибку

HASKI

Новичок
Пользователь
Июл 1, 2021
3
0
1
Python:
s = input()
stack = []
is_good = True
for i in s:
    if i in '{[(':
        stack.append(i)
    elif i in '}])':

        open_bracket = stack.pop()
        if open_bracket== '('and i==')':
            continue
        if open_bracket== '['and i==']':
            continue
        if open_bracket== '{'and i=='}':
            continue
        is_good=False
        break  
if is_good:
    print ("YES")
else:
    print ("NO")

PS C:\Users\user> ({)}
строка:1 знак:2
+ ({)}
+ ~
Отсутствует закрывающий знак "}" в блоке операторов или определении типа.
строка:1 знак:4
+ ({)}
+ ~
Непредвиденная лексема "}" в выражении или операторе.
+ CategoryInfo : ParserError: :)) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace (ето сама ошибка)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 669
477
83
я не знаю как вы получили такую ошибку, я не смог ее добиться...
у вас ошибка в логике, если ввести закрывающие скобки, то список stack всегда пустой, соответственно будет ошибка индекса в строке open_bracket = stack.pop()
 
  • Мне нравится
Реакции: HASKI

Форум IT Специалистов