剑指offer22--栈的压入弹出序列

24 篇文章 0 订阅
20 篇文章 0 订阅
public class IsPopOrder {
/*
* 输入两个整数序列,第一个序列表示压入顺序,判断第二个序列是否为弹出顺序.假设入栈所有数字均不相等
*/
public boolean isPopOrder(int[] line1,int[] line2)
{
if(line1==null || line2==null)
return false;
int point1=0;
Stack<Integer> stack=new Stack<Integer>(); 
for(int i=0;i<line2.length;i++)
{
if(!stack.isEmpty() && stack.peek()==line2[i])//栈顶元素等于第二个序列元素弹出栈顶元素,否则添加元素到栈
{
stack.pop();
}
else 
{
if(point1==line1.length)
return false;
else
{
do
stack.push(line1[point1++]);
while(stack.peek()!=line2[i] && point1!=line1.length);
if(stack.peek()==line2[i])
stack.pop();
else
return false;
}
}
}
return true;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值