为了账号安全,请及时绑定邮箱和手机立即绑定

JS中的关于实现字符检查的实例

标签:
JavaScript

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

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

code

function permAlone(str) {
  var arr=str.split("");
  var newArr=[];
  var tmp;
  function swap(index1,index2){
    tmp = arr[index1];
    arr[index1] = arr[index2];
    arr[index2] = tmp;
  }// swap交换函数 
  function generate(int){
    if(int === 1){
      newArr.push(arr.join(""));
    }else{
      for(var i=0;i<int;i++){
        generate(int-1);
        swap(int % 2 ? 0:i,int -1);
      }
    }
  }//递归函数
  generate(arr.length);

  var re=/(.)\1+/g;
  var filtered=newArr.filter(function(string){
    return !string.match(re);
  });
  return filtered.length;
}

permAlone('aab');
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消