20. 有效的括号
这个题做了三次,前两次的解法现在觉得是算不得正确的。
看的多写得少
做的多总结少
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: “()”
输出: true
示例 2:
输入: “()[]{}”
输出: true
示例 3:
输入: “(]”
输出: false
Me
func isValid(s string) bool {
stack := []byte{}
s_stack := []byte(s)
for _, v := range s_stack {
if len(stack) > 0 {
if stack[len(stack)-1] == v-2 || stack[len(stack)-1] == v-1 {
stack = stack[0 : len(stack)-1]
continue
}
}
stack = append(stack, v)
}
if len(stack) == 0 {
return true
}
return false
}