1、注意:题目中的括号只包括小括号,中括号和大括号。声明一个工具函数,创建一个 Map,key 为相关的右括号,value 为对应的左括号,用于辅助后面的算法实现。
2、实现算法,步骤如下:1. 创建一个栈(通过链表实现);2. 调用上面的工具函数,获取括号 Map;3. 遍历括号串,如果是左括号,则入栈,否则判断其对应的左括号和栈顶元素是否一致,不一致,则直接返回括号串不合法;4. 最后,如果栈为空,则括号串合法,否则不合法。
3、创建本地测试主方法。
4、运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。
5、算法复杂度分析:1. 时间复杂度:算法需要遍历一遍括号串,时间复杂度为 O(n),n即串长度;2. 空间复杂度:通过一个栈存放串中元素,空间复杂度为 O(n)。