적층 구조의 파이썬리스트의 구현을 사용하여, 다음 매칭 알고리즘 괄호 소위 브래킷 일치하는 프로그래밍 언어를 참조 달성하기 위해 스택을 사용하여, 괄호 쌍으로 나타나 왼쪽} 먼저, 마지막 닫는 괄호에 대응 등장 적층 체의 특성에 맞춰, 최신 닫는 괄호에 대응 나타나는 후에 왼쪽 괄호
스택 클래스를 작성 : stack.py를
class Stack:
def __init__(self):
self.items = []
def is_Empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(items)-1]
def size(self):
return len(self.items)
알고리즘 프로그램을 일치하는 괄호를 달성 :
from stack import Stack
def parChecker(symbolString):
s = Stack()
balanced = True
index = 0
while index < len(symbolString) and balanced:
symbol = symbolString[index]
if symbol == "(":
s.push(symbol)
elif symbol == ")":
if s.is_Empty():
balanced = False
else:
s.pop()
index += 1
if balanced and s.is_Empty():
return True
else:
return False
print(parChecker("(((2356)))"))
출력 :
진정한
재시험
print(parChecker("(()))"))
출력 거짓
전파
중괄호의 다양한 일치시킬 수, {}, []
코드 만 사소한 변경 :
from stack import Stack
def parChecker(symbolString):
s = Stack()
balanced = True
index = 0
while index < len(symbolString) and balanced:
symbol = symbolString[index]
if symbol in "({[":
s.push(symbol)
elif symbol in ")}]":
if s.is_Empty():
balanced = False
else:
s.pop()
index += 1
if balanced and s.is_Empty():
return True
else:
return False
print(parChecker("[(({fdf}))]"))