📅  最后修改于: 2023-12-03 15:36:38.983000             🧑  作者: Mango
在编程中,我们常常需要验证表达式的合法性,堆栈是一种非常适合用于这种目的的数据结构。在 JavaScript 中,我们可以使用数组来实现堆栈的功能。
// 初始化堆栈
const stack = [];
// 推入堆栈
stack.push('value');
// 弹出堆栈
const topValue = stack.pop();
// 获取堆栈顶部元素
const topValue = stack[stack.length - 1];
function isValidExpression(expression) {
const stack = [];
const map = {
'(': ')',
'[': ']',
'{': '}',
};
for (let char of expression) {
if (char in map) {
// 左括号入栈
stack.push(char);
} else if (Object.values(map).includes(char)) {
// 右括号判断
if (stack.length === 0 || map[stack.pop()] !== char) {
return false;
}
}
}
// 表达式合法条件:栈为空
return stack.length === 0;
}
console.log(isValidExpression('()')); // true
console.log(isValidExpression('[]')); // true
console.log(isValidExpression('{}')); // true
console.log(isValidExpression('(]')); // false
console.log(isValidExpression('([)]')); // false
console.log(isValidExpression('{[]}')); // true
以上就是使用堆栈验证表达式的 JavaScript 代码。