给定入栈顺序,判断出栈顺序是否合法

根据给定的入栈顺序,使用辅助栈模拟出栈过程,检查是否能按出栈顺序正确操作。若出栈顺序与辅助栈栈顶元素匹配则弹出,否则将后续入栈元素压入。所有元素入栈后,依次比较出栈顺序,不匹配则返回非法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

给定一个入栈顺序,判断出栈顺序是否有可能发生,所遵循的方法是使用一个辅助栈记录入栈的元素,当刚开始时候辅助栈为空,入栈元素第一个压入辅助栈,接下来如果看出栈顺序,如果出栈顺序的第一个元素和辅助栈的栈顶元素不相等,则继续把 入栈元素的下一个压入辅助栈;如果出栈顺序的元素和辅助栈的栈顶元素相等则直接将辅助栈的栈顶元素弹出,同时出栈序列向后移动一位。以此类推,如果当入栈元素全部进入辅助栈了,则秩序比较出栈元素是否和栈顶元素相等,相等则弹出,继续比较下一个出栈元素和栈顶元素;如果出现不相等则返回false.

package stackAndQuence;

import java.util.Stack;

/**
 * 判断一个入栈顺序是不是一个出栈顺序
 * 
 * @author duola
 *
 */
public class pushAndPop {
   
   
    public static boolean isPopOrder2(int[] push, int[] pop) {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值