Given a string containing just the characters ‘(‘,‘)’,‘{‘,‘}’,‘[’ and ‘]’,determine if the input string is valid.
The brackets must close in the correct order,“()” and “()[]{}” are all valid but “(]” and “([)]” are not.
括号匹配问题
func isValid(s string) bool {
stack := []byte{}
for i := 0; i < len(s); i++ {
switch s[i] {
case '(','[','{':
stack = append(stack,s[i])
case ')':
if len(stack) > 0 && stack[len(stack)-1] == '(' {
stack = stack[:len(stack)-1]
} else {
return false
}
case ']':
if len(stack) > 0 && stack[len(stack)-1] == '[' {
stack = stack[:len(stack)-1]
} else {
return false
}
case '}':
if len(stack) > 0 && stack[len(stack)-1] == '{' {
stack = stack[:len(stack)-1]
} else {
return false
}
}
}
return (len(stack) == 0)
}