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
};在 GitHub 上查看题目所在目录:lmliheng/algorithm