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 }
二、分糖果
剩下的整理好再写
#美团##美团笔试#