248 字
1 分钟
LeetCode-20. 有效的括号
栈
给定一个只包括
'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
示例 1:
**输入:**s = ”()”
**输出:**true
示例 2:
**输入:**s = ”()[]{}”
**输出:**true
示例 3:
**输入:**s = ”(]”
**输出:**false
示例 4:
**输入:**s = ”([])”
**输出:**true
示例 5:
**输入:**s = ”([)]”
**输出:**false
思路
初识栈,这题就是利用栈道对称性,思路挺简单的
func isValid(s string) bool { if len(s)%2 == 1 { return false }
stack := make([]rune, 0)
for _, v := range s { if v == '(' { stack = append(stack, ')') }else if v == '{' { stack = append(stack, '}') }else if v == '[' { stack = append(stack, ']') }else { if len(stack) == 0 || stack[len(stack)-1] != v { return false } stack = stack[:len(stack)-1] } }
if len(stack) == 0 { return true }else { return false }} LeetCode-20. 有效的括号
https://sheep44044.github.io/posts/算法/栈/leetcode-20-有效的括号/