JavaScript学习 - 每日一题

判断括弧匹配

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

上一篇 下一篇

猜你喜欢

热点阅读