Сбалансированные скобки в Python

Скобки считаются сбалансированными , если каждой открывающей скобке соответствует закрывающая скобка.

Алгоритм

Для этой задачи мы будем использовать стек. Мы будем вставлять каждую открывающую скобку в стек и вставлять последнюю вставленную открывающую скобку всякий раз, когда встречается закрывающая скобка. Если закрывающая скобка не соответствует открывающей скобке, то мы останавливаемся и говорим, что скобки не сбалансированы.

Помните: всегда проверяйте, что стек в конце пуст. потому что в противном случае скобки не сбалансированы.

1 из 8

Код

Мы использовали алгоритм из приведенной выше иллюстрации в приведенном ниже коде.

 # Функция для проверки сбалансированных скобокdef BalancedBrackets (Str): # стек для хранения открывающих скобок stack = []  # Цикл для проверки строки на наличие char в Str: #, если открывающая скобка, поэтому вставьте ее в # стек, если char == '{' или char == '(' или char == '[': stack.append (char  ) # push # else, если его закрывающая скобка, затем # проверьте, пуст ли стек, затем верните false или # извлеките самый верхний элемент из стека # и сравните его elif char == '}' или char == ')' или char  == ']': if len (stack) == 0: return False top_element = stack.pop () # pop # функция для сравнения, соответствуют ли две скобки # друг другу, если нет Compare (top_element, char): return False  # наконец, проверьте, пуст ли стек или нет, если len (stack)! = 0: return False return True # Функция для проверки двух соответствующих скобок # равны или нет.  def Сравнить (открытие, закрытие): если открытие == '(' и закрытие == ')': вернуть True, если открытие == '[' и закрытие == ']': вернуть True, если открытие == '{' и  закрытие == '}': return True return False # Тестовая функция print (BalancedBrackets ("{123 (456 [.768])}")) 

Оцените статью
nanomode.ru
Добавить комментарий