题解 | #栈的压入、弹出序列#
栈的压入、弹出序列
https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106
kotlin
import java.util.Stack
object Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param pushV int整型一维数组
* @param popV int整型一维数组
* @return bool布尔型
*/
fun IsPopOrder(pushV: IntArray,popV: IntArray): Boolean {
val stack = Stack<Int>()
var start = 0
//模拟入栈,在入栈的过程中可能会出栈,所以可以边入栈边模拟出栈,判断栈顶元素是否等于出栈队列的元素,是的话就出栈
for(i in pushV.indices) {
stack.push(pushV[i])
while(stack.isNotEmpty() && stack.peek() == popV[start]) {
stack.pop()
start++
}
}
return stack.isEmpty()
}
}

查看6道真题和解析