SOURCE

// 数组模拟栈操作
class Stack {
    constructor() {
        // 存储数据
        this.items = [];
    }
    push(item) {
        // 入栈
        this.items.push(item);
    }
    pop() {
        // 出栈
        return this.items.pop();
    }
    top() {
        // 获取栈顶元素
        return this.items[this.items.length - 1];
    }
    clear() {
        // 清空栈
        this.items = [];
    }
    size() {
        // 获取栈的大小
        return this.items.length;
    }
    isEmpty() {
        // 判断栈是否为空
        return this.items.length === 0;
    }
}

// 括号匹配问题解决方法
// 方式一:栈
function isPairing(str = '') {
    const stack = new Stack();
    for(let i of str) {
        if (i === '(') {
            stack.push(i);
        } else if (i === ')') {
            if (stack.isEmpty()) {
                return false;
            } else {
                stack.pop();
            }
        }
    }
    return stack.size() === 0;
}

//方式二:计数法
function isParing2(str=''){
    var num =0;
    for(let i of str){
        i === '(' ? num++ : num--
    }
    return num === 0
}

console.log(isParing2(')'))
console 命令行工具 X clear

                    
>
console