判断括弧匹配
2016-06-12 本文已影响48人
云香水识
/**
* 每日一题: 2016-06-12
* 判断一个包含括号的字符串括号是否匹配
*
* @from https://www.codewars.com/kata/54b80308488cb6cd31000161
* @param {string} str 待判断的字符串
* @return {boolean} 是否匹配
*/
function groupCheck (str){
var reg = /\{\}|\[\]|\(\)/g;
while (str && str.match(reg)) {
str = str.replace(reg, '');
}
return !str;
}
function groupCheck1 (str){
var temp = str.replace('{}', '').replace('[]', '').replace('()', '');
// 如果没有可以替换的就跟上一次的字符串一样了,就结束循环
while (temp !== str) {
console.log(temp)
str = temp;
temp = str.replace('{}', '').replace('[]', '').replace('()', '');
}
// 替换完了说明匹配, 没完就是不匹配
return !temp;
}
console.log( groupCheck('()') ); // true
console.log( groupCheck('{(})') ); // false
console.log( groupCheck('[]{}') ); // true
console.log( groupCheck('[])') ); // false