20. 有效的括号

给定一个只包括 ‘(',')','{','}','[',']’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。

function isValid(s: string): boolean {
    let stack = []
    for (let c of s) {
        if (c == '(' || c == '{' || c == '[') {
            stack.push(c)
        }

        if (c == ')' || c == '}' || c == ']') {
            let e = stack.pop()
            if (c != rightof(e)) {
                return false
            }
        }
    }

    if (stack.length > 0) {
        return false
    }

    return true
};

function rightof(c: string): string {
    if (c == "{") {
        return "}"
    }

    if (c == "[") {
        return "]"
    }

    if (c == "(") {
        return ")"
    }

    return ""
}