5.25 美团笔试
一、根据出栈入栈序列判断是否为合法的栈,剑指Offer31
package main
import (
"fmt"
)
func main() {
var T int
fmt.Scanln(&T)
for i := 0; i < T; i++ {
var n int
fmt.Scanln(&n)
in := make([]int, n)
out := make([]int, n)
for j := 0; j < n; j++ {
fmt.Scanf("%d", &in[j])
}
for j := 0; j < n; j++ {
fmt.Scanf("%d", &out[j])
}
if isStack(in, out) {
fmt.Println("Yes")
} else {
fmt.Println("No")
}
}
}
func isStack(pushed []int, popped []int) bool {
stk := make([]int, 0)
i := 0
for _, v := range pushed {
stk = append(stk, v)
for len(stk) > 0 && stk[len(stk)-1] == popped[i] {
stk = stk[:len(stk)-1]
i++
}
}
return len(stk) == 0
}
二、分糖果
剩下的整理好再写
#美团##美团笔试#