JavaScript で関数を作成しようとしています。これは、指定された文字列が文字のすべての可能な組み合わせの配列を返し、それぞれが最も短いものから始めて、最大で 1 回使用されます。たとえば、文字列 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の両方が返されるべきではありません。また、配列の最初にある最短のものも重要です。
これは宿題ではありません。「ライトアウト」タイプのゲームを解決するためのプログラムです。