我正在尝试在 JavaScript 中创建一个函数,给定一个字符串将返回一个包含所有可能字母组合的数组,每个字母最多使用一次,从最短的开始。例如,对于字符串 ABC,它将返回:
A
B
C
AB
AC
ABC
我可以像这样使用循环:
for(i=0; i<string.length; i++) {
//add string[i]
}
for(i=0; i<string.length; i++) {
for(a=i; a<string.length; a++) {
//add string[i]+string[a]
}
}
for(i=0; i<string.length; i++) {
for(a=i; a<string.length; a++) {
for(b=a; b<string.length; b++) {
//add string[i]+string[a]+string[b]
}
}
}
但我不知道字符串的长度,所以不知道要使用多少个循环。
有任何想法吗?
编辑:我不是要求排列,不应同时返回 abc 和 acb 。同样,最短的排在第一位也很重要。
这不是家庭作业。这是一个解决“熄灯”类型游戏的程序。