把一個字符串中的字符重新排列生成新的字符串,返回新生成的字符串里沒有連續(xù)重復(fù)字符的字符串個數(shù).連續(xù)重復(fù)只以單個字符為準
例如, aab 應(yīng)該返回 2 因為它總共有6中排列 (aab, aab, aba, aba, baa, baa), 但是只有兩個 (aba and aba)沒有連續(xù)重復(fù)的字符 (在本例中是 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');