剑指offer22--栈的压入弹出序列
2014-11-02 11:20
260 查看
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;
}
}
/*
* 输入两个整数序列,第一个序列表示压入顺序,判断第二个序列是否为弹出顺序.假设入栈所有数字均不相等
*/
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;
}
}
相关文章推荐
- 剑指offer--面试题22:栈的压入、弹出序列
- 剑指Offer面试题22(Java版):栈的压入、弹出序列
- 剑指offer 面试题22:栈的压入、弹出序列 题解
- 剑指offer-22:栈的压入弹出序列
- 剑指 offer面试题22 栈的压入和弹出序列
- [剑指offer]面试题22:栈的压入、弹出序列
- 剑指offer面试题22:栈的压入、弹出序列
- 剑指offer-面试题22-栈的压入、弹出序列
- 剑指offer-面试题22:栈的压入,弹出序列
- 【剑指offer】面试题22:栈的压入弹出序列
- 剑指Offer 22 栈的压入,弹出序列
- 剑指offer——面试题22:栈的压入、弹出序列
- 剑指Offer:面试题22——栈的压入,弹出序列(java实现)
- 【剑指Offer】面试题22:栈的压入,弹出序列
- 剑指offer面试题22 栈的压入、弹出序列
- 【剑指offer】4.3举例让抽象问题具体化——面试题22:栈的压入、弹出序列
- 【剑指offer】题22:栈的压入、弹出序列
- 【面试题】剑指Offer-22-栈的压入和弹出序列
- 剑指offer 22 栈的压入、弹出序列
- 剑指Offer22:栈的压入、弹出序列