Skip to content

JS中字符串括号匹配问题

在JavaScript中,你可以使用栈(Stack)的数据结构来判断一个字符串中的括号是否匹配。这种方法特别适用于处理不同类型的括号,比如圆括号 ()、花括号 {} 和方括号 []。下面是一种实现方式:

javascript
function isBalanced(s) {
    const stack = [];
    const map = { ')': '(', '}': '{', ']': '[' };
 
    for (let char of s) {
        if (char === '(' || char === '{' || char === '[') {
            // 如果是开括号,压入栈
            stack.push(char);
        } else if (char === ')' || char === '}' || char === ']') {
            // 如果是闭括号
            if (stack.length === 0 || map[char] !== stack.pop()) {
                // 如果栈为空或者栈顶元素不匹配,返回false
                return false;
            }
        }
    }
    // 如果栈为空,表示所有括号都正确匹配,返回true;否则返回false
    return stack.length === 0;
}
 
// 测试用例
console.log(isBalanced("({})")); // true
console.log(isBalanced("([])")); // true
console.log(isBalanced("({)}")); // false
console.log(isBalanced("{[]}")); // true

大部分的面试官问到这题,基本上想要知道的就是这个答案,这个题按这个答案走,有90%的机率能进下一轮。