Задача по Python сложность:2 из 5 муторная только
Правильной скобочной последовательностью называется строка, состоящая только из символов «скобки» (открывающих "(" и закрывающих ")"), где каждой закрывающей скобке найдётся соответствующая открывающая. Например, () и (()()) — правильные последовательности, а (()(() или )( — нет. Напишите функцию bracket_check(test_string), которая проверяет, является ли поступившая на вход строка правильной скобочной последовательностью. Если да, она должна печатать YES, в противном случае — NO. Обратите внимание, что пустая строка также является правильной скобочной последовательностью.
Пример 1
Ввод:
bracket_check("()")
Вывод:
YES
Пример 2
Ввод:
bracket_check("(()((")
Вывод:
NO
Удобно структуру подходящую использовать, словарь, например:
elem={'(':1,')':-1}
frm=input(' скоб форма=')
print(('Yes','No')[sum(elem[i] for i in frm)])
Да чего тут "муторного"-то? Все же элементарно абсолютно:
def bracket_check(s):
bc = 0
for c in list(s):
if (c == '('):
bc=bc+1
if (c == ')'):
bc=bc-1
if (bc<0):
return False
return bc == 0