代码拉取完成,页面将自动刷新
输入两个整数序列,第一个序列表示栈顶压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1、2、3、4、5是某栈的压栈序列。序列4、5、3、2、1是该压栈序列对应的一个弹出序列,但4、3、5、1、2就不可能是该压栈序列的弹出序列。
解题思路1(与原书解法不一样):
(1)将入栈序列依次入栈,直到遇到要入栈的元素等于出栈序列的第一个元素。如果相等则直接跳过该元素,入栈序列和出栈序列都到下一个指针。直到入栈序列指针到最后一个元素。
(2)接着检查下一个出栈元素是否等于入栈的栈顶元素,如果等于则继续出栈,否则继续入栈,重复第一步操作。
(3)遍历完所有入栈序列后,从当前出栈序列所指下标的元素,依次和栈中元素依次出栈对比,一旦发现有不相同的,则返回false,否则返回true
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。