20. 有效的括号

89 阅读1分钟

题目:

给定一个只包括 '(',')','{','}','[',']' 的字符串 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
}