python:栈的理解与应用( 二 )


这里也可以用栈来解决 。我们用栈来保存未匹配的左括号,从左到右依次扫描字符串 。当扫描到左括号时,则将其压入栈中;当扫描到右括号时,从栈顶取出一个左括号 。如果能够匹配,比如“(”跟“)”匹配,“[”跟“]”匹配,“{”跟“}”匹配,则继续扫描剩下的字符串 。如果扫描的过程中,遇到不能配对的右括号,或者栈中没有数据,则说明为非法格式 。
当所有的括号都扫描完成之后,如果栈为空,则说明字符串为合法格式;否则,说明有未匹配的左括号,为非法格式 。
内容小结栈是一种操作受限的数据结构,只支持入栈和出栈操作 。后进先出是它最大的特点 。栈既可以通过数组实现,也可以通过链表来实现 。不管基于数组还是链表,入栈、出栈的时间复杂度都为 O(1) 。除此之外,我们还讲了一种支持动态扩容的顺序栈.

【python:栈的理解与应用】


推荐阅读