题目:
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。
考察栈,注意理解题意,所谓左括号和右括号
解法:
func isValid(s string) bool {
stack := []byte{}
for i := 0; i < len(s); i ++ {
cur := s[i]
if len(stack) != 0 {
top := stack[len(stack) - 1]
if (top == '{' && cur == '}') || (top == '(' && cur == ')') || (top == '[' && cur == ']') {
stack = stack[:len(stack) - 1]
continue
}
}
stack = append(stack, cur)
}
return len(stack) == 0
}