前端算法之括号匹配

56 阅读1分钟

相信括号匹配已经是小儿科的题目了

因为之前不怎么刷算法,导致现在面试吃很大的亏,所以只能硬着头皮刷算法。今天刷到的算法是利用栈这种数据结构实现一个括号匹配的算法。在这里记录一下,以加深印象。

直接开始,代码如下:

function search(str){
    let arr=[];
    //js用数组模拟栈
    let stack=[];
    arr=str.split('');
    for(let i=0;i<arr.length;i++){
        if(!stack.length){
            stack.push(arr[i]);
        }else{
            if(ismatch(stack[stack.length-1],arr[i])){
                stack.pop();
            }else{
                stack.push(arr[i]);
            }
        }    
    }
    function ismatch(l,r){
        if(l==='('&&r===')'||l==='{'&&r==='}'||l==='['&&r===']'){
            return true;
        }
    }
    return !stack.length;
}

对代码如有疑问,欢迎在评论区交流