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%的机率能进下一轮。