我有一个函数,该函数应不重复地返回字符串的所有各种组合。 到目前为止,我尝试过的是:
function combinator (s) {
var reverseStr = s.split('').reverse().join('')
list_of_strings = new Array();
for(i=0;i<s.length;i++) {
for(j=i+1;j<s.length+1;j++) {
if(!list_of_strings.includes(reverseStr.slice(i, j))){
list_of_strings.push(reverseStr.slice(i, j));
}
if(!list_of_strings.includes(s.slice(i, j))){
list_of_strings.push(s.slice(i, j));
}
}
}
return list_of_strings;
}
console.log(combinator("dog"));
该程序的输出为
[ 'g', 'd', 'go', 'do', 'god', 'dog', 'o', 'od', 'og' ]
缺少一些['dg','gdo','odg','ogd']