括号匹配

#算法 #笔试题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 括号匹配算法
function isValid(str){
let strArr = str.split(''),
left = [];// 空栈
for(let i=0;i<strArr.length;i++){
if(strArr[i] == '(' || strArr[i] == '[' || strArr[i] == '{'){
left.push(strArr[i]) //左括号入栈
}else{
if(strArr[i] == ')' && left.pop() != '('){
return false //结束循环
}
if(strArr[i] == ']' && left.pop() != '['){
return false
}
if(strArr[i] == '}' && left.pop() != '{'){
return false
}
}
}
return left.length == 0
}

let test = '{9()32358}'
console.log(isValid(test))

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!