美文网首页
No repeats please

No repeats please

作者: yyggfffg | 来源:发表于2018-05-20 09:52 被阅读0次

    把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符为准

    例如, aab 应该返回 2 因为它总共有6中排列 (aab, aab, aba, aba, baa, baa), 但是只有两个 (aba and aba)没有连续重复的字符 (在本例中是 a).

    function permAlone(str) {
      var len = str.length;
      var newstr = ""; 
    
      //递归
      function permute(str){
        var result = [];
        if(str.length == 1) {
          return [str];
        }
        else {
          var temp = permute(str.slice(1));
          for(var i = 0;i < temp.length; i++) {
            for(var j = 0;j < temp[i].length+1; j++) {
              newstr = temp[i].slice(0,j) + str[0] + temp[i].slice(j);
              result.push(newstr);
            }  
          }
          return result;    
        } 
      }   
     var final = permute(str);
     var re = /([A-Za-z])\1+/g ;
     final = final.filter(function(element){
       return !element.match(re);
     });
     return final.length;
    }
    
    permAlone('aab');
    

    相关文章

      网友评论

          本文标题:No repeats please

          本文链接:https://www.haomeiwen.com/subject/zztvrftx.html