码迷,mamicode.com
首页 > 其他好文 > 详细

No repeats please

时间:2017-12-11 20:00:27      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:相同   个人   for   lease   ble   个数   应该   log   注释   

 

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

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

 

 

function permAlone(str) {
var arr = str.split("");
var a = [];
function swap(item1, item2) {
var temp = arr[item2];
arr[item2] = arr[item1];
arr[item1] = temp;
}

function huishuo(arr, k, length) {
var i;
if (k === length) {
a.push(arr.join(""));
} else {
for (i = k; i < length; i++) {

//if(k!==i&&arr[k]===arr[i]){

//return;

//}
swap(k, i);
huishuo(arr, k + 1, length);
swap(k, i);
}
}
}
huishuo(arr, 0, arr.length);
var b=a.filter(function(e){
return !/([a-zA-Z])\1/.test(e);
});
return b.length;
}
permAlone("aabb");

 

 

其实个人感觉这题有点问题  应该加入一个查重的步骤,就是我注释掉的那部分,如果两个字符相同就不继续进行了

No repeats please

标签:相同   个人   for   lease   ble   个数   应该   log   注释   

原文地址:http://www.cnblogs.com/Hasaki1997/p/8024457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!