import java.util.*;
/**
* @author shy_black
* @date 2019/3/19 9:18
* @Description:
* 使用一个辅助栈,
* 1.循环入栈,循环比较-->当当前栈顶元素与预期出栈队列中的index下标元素相等时,将相等的元素出栈,index++
* 2.当pushA元素入栈完成后,如果popA中还有元素未进行比较,那么popA就一定不是预期的出栈队列
*/
public class 栈的压入_弹出序列 {
public boolean IsPopOrder(int [] pushA,int [] popA) {
if(pushA.length == 0 || popA.length == 0)
return false;
Stack<Integer> stack = new Stack<>();
int index = 0;
for(int i = 0;i < popA.length;i++) {
stack.push(pushA[i]);
while(!stack.isEmpty() && stack.peek() == popA[index]){
stack.pop();
index++;
}
}
if(stack.isEmpty() && pushA.length == index)
return true;
else
return false;
}
}
栈的压入_弹出序列
最新推荐文章于 2020-02-26 14:37:26 发布