这里也可以用栈来解决 。我们用栈来保存未匹配的左括号,从左到右依次扫描字符串 。当扫描到左括号时,则将其压入栈中;当扫描到右括号时,从栈顶取出一个左括号 。如果能够匹配,比如“(”跟“)”匹配,“[”跟“]”匹配,“{”跟“}”匹配,则继续扫描剩下的字符串 。如果扫描的过程中,遇到不能配对的右括号,或者栈中没有数据,则说明为非法格式 。
当所有的括号都扫描完成之后,如果栈为空,则说明字符串为合法格式;否则,说明有未匹配的左括号,为非法格式 。
内容小结栈是一种操作受限的数据结构,只支持入栈和出栈操作 。后进先出是它最大的特点 。栈既可以通过数组实现,也可以通过链表来实现 。不管基于数组还是链表,入栈、出栈的时间复杂度都为 O(1) 。除此之外,我们还讲了一种支持动态扩容的顺序栈.
【python:栈的理解与应用】
推荐阅读
- 不适宜喝茶的人,不适宜喝红茶的人
- 绿茶籽的功效与作用,菊花绿茶起喝的功效
- 八种茶禁忌饮用,路易波士茶的禁忌(路易波士茶含丰富的抗氧化剂
- 绿茶粉的副作用与禁忌,茶油的副作用有哪些
- 做数据分析应该掌握的5个SQL数据清洗方法
- Java开发人员必知的常用类库,这些你都知道吗?
- DNS 的 5 种攻击形式和应对举措
- 串口通信RS232的基本接法,原来这么简单,今天终于弄明白了
- 交换机光模块与光纤收发器的光纤互通试验
- Kali和Windows用户密码管理的异同