📑 题目:20. 有效的括号
题目大意
括号匹配问题。
解题思路
遇到左括号就进栈push,遇到右括号并且栈顶为与之对应的左括号,就把栈顶元素出栈。最后看栈里面还有没有其他元素,如果为空,即匹配。
需要注意,空字符串是满足括号匹配的,即输出 true。
代码
package leetcodefunc isValid(s string) bool {// 空字符串直接返回 trueif len(s) == 0 {return true}stack := make([]rune, 0)for _, v := range s {if (v == '[') || (v == '(') || (v == '{') {stack = append(stack, v)} else if ((v == ']') && len(stack) > 0 && stack[len(stack)-1] == '[') ||((v == ')') && len(stack) > 0 && stack[len(stack)-1] == '(') ||((v == '}') && len(stack) > 0 && stack[len(stack)-1] == '{') {stack = stack[:len(stack)-1]} else {return false}}return len(stack) == 0}
