1、题目
题目要求
给出一串由不同类型括号组成的字符串,判断是否满足“平衡原则”。满足则输出True,不满足则输出False.
平衡原则:
①每一个左括号对应一个右括号【括号类型也要一样】
②一对括号内的所有括号都是匹配好的
输入输出示例
输入:‘(())(}({])’
输出:False
输入:‘()(()()){}{]’
输出:False
2、思路
由于每一个右括号都与在它左边的最近的左括号相匹配,对于左括号的处理具有“后进先出”的特点,采用栈来存放左括号。
可以对字符串进行从左到右的扫描,遇到左括号则压入栈中,遇到右括号则判断是否与之类型匹配,若匹配,则把栈顶的左括号pop出来。
如果遇到右括号后栈内没有了左括号,或扫描完后栈内仍有左括号,或右括号与左括号类型不一致,则匹配失败,返回False
否则,匹配成功,返回True.
3、代码
#栈的定义
class Stack:
def __init__(self):
self.items=[]
def isEmpty(self):
return