package main /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pushV int整型一维数组 * @param popV int整型一维数组 * @return bool布尔型 */ func IsPopOrder( pushV []int , popV []int ) bool { // write code here // 用数组模拟栈 s := make([]int, 0, len(pushV)) // 弹出序列的遍历指针 j := 0 // 依次遍压入栈序列 for i := 0; i < len(pushV); i++ { // 1. 将入栈序列中的一个元素压入到辅助栈中 s = append(s, pushV[i]) // 2. 如果当前辅助栈中不为空,并且要弹出值刚好是辅助栈栈顶元素,那么直接出栈 for len(s) != 0 && s[len(s)-1] == popV[j] { s = s[:len(s)-1] j++ } // 3. 如果需要弹出的值不是辅助栈栈顶元素,那么需要将需要弹出的值及其之前未入栈过的值压入 } return len(s) == 0 }