#1.给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否匹配。
* 有效字符串需满足:
* 左括号必须用相同类型的右括号闭合。
* 左括号必须以正确的顺序闭合。
* 注意空字符串可被认为是有效字符串。
思路:## 正确思路:
* 不需要考虑输入内容是否合法,这只是做题,不是工程
* 定义一个字典,后括号为键,前半部分为值
* 定义一个元素保存栈顶,注意这个设置,取栈顶的操作
* 用栈的思想,如果是字典里的值,进入栈,否则,判断栈顶元素是否和这个元素匹配若匹配就弹出,不匹配就报False
* 依次执行上两步
class Qj(object):
def Kuohaopipei(s):
stack = []
maping = {')':'(',']':'[','}':'{'}
for C in s:
if C in maping:
# 从堆栈中弹出最上面的元素(如果它不是空的)否则,将伪值“#”赋给top_element变量
Top_element = stack.pop() if stack else '#'
if maping[C] != Top_element:
return False
else:
stack.append(C)
return not stack
if __name__ == '__main__':
s = input('给定只包括括号的字符串,判断字符串是否匹配')
print(Qj.Kuohaopipei(s))