ここでスタックにありますが、私はいくつかの変更が必要です。Javascript - パーミュテーションは重複要素を削除します
function perms(data) {
if (!(data instanceof Array)) {
throw new TypeError("input data must be an Array");
}
data = data.slice(); // make a copy
var permutations = [],
stack = [];
function doPerm() {
if (data.length == 0) {
permutations.push(stack.slice());
}
for (var i = 0; i < data.length; i++) {
var x = data.splice(i,1);
stack.push(x);
doPerm();
stack.pop();
data.splice(i, 0, x);
}
}
doPerm();
return permutations;
}
var input = "552".split('');
var result = perms(input);
for (var i = 0; i < result.length; i++) {
result[i] = result[i].join('-');
}
その結果は次のとおり
5-5-2
5-2-5
5-5-2
5-2-5
2-5-5
5-5-2
5-2-5
2-5-5
:2-5-5しかし、3つの要素であり、結果がでなければならない複製します
どうすればその問題を解決できますか?
あなたはそれを見つけましたか?質問に参考文献を含めることができますか、おそらくあなたが試したことはありますか? –