Top.Mail.Ru

Перечень алгоритмов

24. Строки. Проверка расстановки скобок

Проверьте, правильно ли в заданном тексте расставлены круглые скобки.

 

В заданном тесте убираем все символы кроме скобок

s = "".join(x for x in s if x in "()")

Способ 1. Использование метода replace()


s= '()()()'
# s= ')(()()()'
s = s.replace('()', "")
if len(s)==0:
  
print('Правильно')
else:
  
print('Не правильно')

#Правильно

 

 

Способ 2. Использование стека

stack = []
for ch in s:
      
if ch == '(':
           stack.append(ch)
      
elif ch == ')':
          
if stack:
               stack.pop()

if len(stack)==0:
  
print('Правильно')
else:
  
print('Не правильно')

#Правильно

 

Вариант для различных скобок

В заданном тесте убираем все символы кроме скобок


s = "".join(x for x in s if x in "({[]})")
# пока в строке есть пары скобок
while '()' in s or '[]'in s or '{}' in s:
   s = s.replace(
'()','').replace('[]','').replace('{}','')
if len(s) ==0:
  
print('Правильно')
else:
  
print('Не правильно')

#Правильно