Skip to content

20. 有效的括号 ​

  • 题号:20
  • 来源:LeetCode
  • 难度:简单
  • 标签:栈 字符串
  • 语言:TypeScript
  • 解法:1 个
  • 作者:lmliheng
  • 最近更新:2026-09-27

TypeScript · O(n) 时间 · O(n) 空间 · 更新于 2026-09-27

栈匹配括号,用 Map 判断右括号是否配对

typescript
/**
 * @difficulty easy
 * @tags 栈,字符串
 * @time O(n)
 * @space O(n)
 * @note 栈匹配括号,用 Map 判断右括号是否配对
 * @20. 有效的括号 
 */
function isValid(s: string): boolean {
    let stack = []
    let map = new Map([['(', ')'], ['{', '}'], ['[', ']']])
    for (let i = 0; i < s.length; i++) {
        let len = stack.length
        if (s[i] == '(' || s[i] == "{" || s[i] == '[') {
            stack.push(s[i])
            continue
        }
        if (s[i] == ')' || s[i] == '}' || s[i] == ']') {
            if (len == 0) { return false }
            if (map.get(stack[len - 1]) == s[i]) {
                stack.pop()
            } else {
                return false
            }
        }
    }
    return stack.length === 0
};

源码:ts/leetcode/20. 有效的括号.ts


在 GitHub 上查看题目所在目录:lmliheng/algorithm