No repeats please

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

例如, 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');
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单个字符...
    Awoooo阅读 271评论 0 0
  • 要求 把一个字符串中的字符重新排列生成新的字符串,返回新生成的字符串里没有连续重复字符的字符串个数.连续重复只以单...
    Oracle_c113阅读 203评论 0 0
  • 参考博客:葡萄美酒夜光杯 1、验证美国有效号码(Validate US Telephone Numbers) 如果...
    Iris_mao阅读 760评论 3 5
  • 满:妈妈,我昨天没有带生字本回来,我把作业写到田格本上,不过也没关系,今天第一节课是英语课,课间的时候我可以把田格...
    Jennifer0707阅读 133评论 0 0
  • 网络通信是系统之间的通信。 SAP(服务访问点):同一系统中相邻层次进行访问的场所。 实体:发送(接收信息的软/硬...
    余生筑阅读 350评论 0 0