最近在找工做,老是被问到像对括号这样的数据,怎么判断它是否有效,写一个方法,判断它是否有效? 因此,今天就写一个贴上吧,我没有考虑什么场景,就是一个基本的实现javascript
function brackets(str) {
var strArr = str.split('');
function decide(type) {
switch(type) {
case '(':
return 1;
case '[':
return 2;
case '{':
return 3;
case ')':
return -1;
case ']':
return -2;
case '}':
return -3;
default:
break;
}
}
var arr = [], flag = true;
strArr.map(item => {
var num = decide(item);
if (num > 0) {
arr.push(num);
} else {
var prev = arr.pop();
if (Number(prev + num)) {
flag = false;
}
}
})
return flag
}
var str1 = '{{{{}}}([)]}';
var str2 = '{{{{}}}[()]}';
brackets(str1) // 返回false
brackets(str2) // 返回true
复制代码
写这个的主要目的是为了方便往后本身的查看,固然若是某位同窗有更好的看法,也不防告诉我java