#后来的开括号先被闭括号匹配掉,因此栈中仅缓存开括号,后进先出(匹配)
#如果栈空了还有闭括号那错误,如()),否则将“(”踢出栈
from pythonds import Stack
def parChecker(symbolString):
s = Stack()
balanced = True #定义一个布尔变量
index = 0
while index < len(symbolString) and balanced:
symbol = symbolString[index] #index:元素索引序号
if symbol == "(":
s.push(symbol)
else:
if s.isEmpty():
balanced = False
else:
s.pop()
index = index + 1
if balanced and s.isEmpty():
return True
else:
return False