相信括号匹配已经是小儿科的题目了
因为之前不怎么刷算法,导致现在面试吃很大的亏,所以只能硬着头皮刷算法。今天刷到的算法是利用栈这种数据结构实现一个括号匹配的算法。在这里记录一下,以加深印象。
直接开始,代码如下:
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;
}
对代码如有疑问,欢迎在评论区交流