这似乎与其他排列问题类似,但差异被证明是一个挑战。
given x options
(一般为3-7,或[a,b,c]
to [a,b,c,d,e,f,g]
)
获取所有permutations of y length
(通常也是3-7)
x = [a,b,c] y = 7
[a,a,a,a,a,a,a]
[a,a,a,a,a,a,b]
[a,a,a,a,a,b,a]
[a,a,a,a,b,a,c]
[a,c,a,b,a,a,a]
etc.
或
x=7 [a,b,c,d,e,f,g] y=3
[a,a,a]
[a,d,g]
[a,g,d]
[g,d,a]
etc.
我想说我已经取得了一些进展,但我甚至不知道如何开始,而涉及排列的所有其他解决方案似乎都严重依赖于字符串长度。
发布于 2020-04-05 08:23:24
这些不是真正的排列,它们是字母表上的字符串。它可以像这样递归实现:
let alphabet = ['a', 'b', 'c', 'd'];
let strings = [];
function generateStrings(alphabet, strings, length, prefix = [])
{
for (let letter of alphabet) {
if (length === 1) {
strings.push([letter].concat(prefix));
} else {
generateStrings(alphabet, strings, length - 1, [letter].concat(prefix));
}
}
}
generateStrings(alphabet, strings, 3);
console.log(strings);
希望这能有所帮助。
https://stackoverflow.com/questions/61036218
复制相似问题