Javascript 获取一些字符的所有可能组合
如果a有a,B,C, 我想创建一些长度为4的字符串 因此,输出将是Javascript 获取一些字符的所有可能组合,javascript,Javascript,如果a有a,B,C, 我想创建一些长度为4的字符串 因此,输出将是 AAAA AAAB AAAC AABA AABB AABC ABAB .... CCCC 这里有一些评论,所以你可以理解。多亏了 谢谢,但我也需要重复字符的字符串,如BBAA链接重复问题不重复。在链接问题中,只允许唯一的字符组合,在这个问题中,允许相同字符的重复。 function permutate(theWord){ //Array to store the generated words var
AAAA
AAAB
AAAC
AABA
AABB
AABC
ABAB
....
CCCC
这里有一些评论,所以你可以理解。多亏了
谢谢,但我也需要重复字符的字符串,如BBAA链接重复问题不重复。在链接问题中,只允许唯一的字符组合,在这个问题中,允许相同字符的重复。
function permutate(theWord){
//Array to store the generated words
var words = [];
/**
* Recursive function to split a string and rearrange
* it's characters and then join the results
*/
function rearrange(str, prefix) {
var i, singleChar, balanceStr, word;
//The first time round, prefix will be empty
prefix = prefix || '';
//Loop over the str to separate each single character
for(i = 0; i < str.length; i++) {
singleChar = str[i];
balanceStr = str.slice(0, i) + str.slice(i+1);
//join the prefix with each of the combinations
word = prefix + singleChar + balanceStr;
//Inject this word only if it does not exist
if(words.indexOf(word) < 0) words.push(word);
//Recursively call this function in case there are balance characters
if(balanceStr.length > 1) rearrange(balanceStr, prefix + singleChar);
}
}
//kick start recursion
rearrange(theWord);
return words;
}
var permutatedWord = permutate('goal');
console.log(permutatedWords);