题解 | #栈的压入、弹出序列#
栈的压入、弹出序列
https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pushV int整型一维数组 * @param popV int整型一维数组 * @return bool布尔型 */ public boolean IsPopOrder (int[] pushV, int[] popV) { // write code here int n = pushV.length;//记录给一个数组的元素个数 Stack<Integer> integer = new Stack<>(); int j=0; for(int i=0;i<n;i++){//记录栈有多少元素被放入 while(j<n&&(integer.isEmpty()||integer.peek()!=popV[i])){ //如果栈内已存在的元素等于n时 或者栈内是空的 或者栈顶的元素不等于出栈的数组 integer.push(pushV[j]);//将元素放入栈内 j++; } if(integer.peek()==popV[i]){//如果栈内的元素等于出栈数组的元素,那么就出栈 integer.pop(); }else{//否则就是无法出栈的 return false; } } return true; } }