本文主要是解决括号匹配的问题。
整体实现思路:借助Python 的List 来实现 ,因为列表的Append 方法相当于栈的Push 方法即栈的压入,列表的Pop 方法相当于栈的Pop 方法即弹出。
详细的思路:
首先,设置一个字典,用于存放我们要遍历的符号类型。
其次,是设置两个列表分别存放的是各种括号的开括号和闭括号,然后遍历给定的字符串,分如下几种情况:
-
字符串为空时直接输出True
-
字符串的符号不成对匹配时输出False
-
字符串中的符号不是字典中的符号类型时,直接忽略
-
遍历字符串,将正向的符号压入栈内,遍历到的字符如果是正向符号(正好是最近的一个符号时)的匹配内容就弹出栈
代码实现如下:
#定义要检查匹配的符号类型
brackets = {'}': '{', ']': '[', ')': '(', '>': '<'}
#将符号的正反向进行分类
bracket_l, brackets_r = br