·解题思路来源https://github.com/azl3979858…
package mainimport "container/list"import "fmt"func main(){ s := "{{}}" m := "{{[()}]}" l := "{[(())]}" fmt.Println(check(s)) fmt.Println(check(m)) fmt.Println(check(l))}func check(x string) bool { mapper := map[byte]byte{ '{':'}', '(':')', '[':']', } stack := list.New() //初始化栈 for _, v := range x { i := byte(v) if _, ok := mapper[i]; ok { //入栈 stack.PushFront(i) fmt.Println(i) } else { if stack.Len() == 0 { return false } l := stack.Remove(stack.Front()).(byte) r, ok := mapper[l] if !ok || r != i { return false } fmt.Printf("%s:%s", "S", string(i)) fmt.Printf("%s:%s", "L", string(l)) fmt.Printf("%s:%s", "R", string(r)) fmt.Println() } } if stack.Len() > 0 { return false } return true}
文章来源:智云一二三科技
文章标题:golang 解题标准括号问题
文章地址:https://www.zhihuclub.com/1447.shtml