14.有效括号-入栈出栈

思路

利用栈来判断是否成双成对,并且栈可以实现后进先出

20220303

容易遗漏特殊情况,比如if len(stack)==0{return false}

package main

// @solution-sync:begin
func isValid(s string) bool {
	stack := make([]string, 0)

	for _, v := range s {
		if string(v) == "(" || string(v) == "[" || string(v) == "{" {
			stack = append(stack, string(v))

		} else {
			if len(stack)==0{
				return false
			}
			pushStack := stack[len(stack)-1]

			if (pushStack == "(" && string(v) == ")") || (pushStack == "[" && string(v) == "]") || (pushStack == "{" && string(v) == "}") {
				stack = stack[:len(stack)-1]
			}else{
				return false
			}
		}
	}
	return len(stack) == 0
}

Last updated