Python数据结构与算法(3.2)——栈相关应用与习题
0. 学习目标
我们已经学习了栈的相关概念以及其实现,同时也了解了栈在实际问题中的广泛应用,本节的主要目的是通过栈的相关习题来进一步加深对栈的理解,同时能够利用栈降低一些复杂问题解决方案的时间复杂度。
1. 回文序列判断
[问题] 给定一字符串 string
(如:abamaba),检查其是否为回文。
[思路] 由于 string
为字符串,因此最简单的方法是使用双索引法,其中一个索引位于字符串的开头,另一个位于字符串的末尾;每次比较两个索引处的值是否相同。如果值相同,则增加左索引、减少右索引,否则给定的字符串不是回文序列;持续上述过程,直到两个索引在中间相遇。
我们也可以利用栈来快速解决此问题,如下述[算法]
所示。
[算法]
遍