2017-01-05 17 views
-2

次の問題があります。 私はいくつかの単語を持っています(3としましょう):word1 word2 word3、それらはすべて空白で区切られていて、私は word1 word2 word3 ... word2 word1 word3のようにすべての組み合わせ(3! .. word2 word3 word1 ... word3 word2 word1 ... word3 word1 word2 ... word1 word3 word2 ... 任意の数の単語に対応する汎用コードを教えてもらえますか?JavaScriptはすべて組み合わせを生成します

+0

私はあなたがこれまでにしようとしたものを共有する....いくつかの再帰的なメソッドを使用することができると思う..私にはない問題です –

+0

何もどこから始めるか知っている –

+1

http://stackoverflow.com/questions/39927452/recursively-print-all-permutations-of-a-string-javascript –

答えて

0

提供されているソリューションのいずれかを"Permutations in JavaScript?"に使用できます。文字列を単語に分割し、単語を各順列の文字列に戻すだけでよいのです。

ES6デモ:

function* permute(permutation) { 
 
    var length = permutation.length, 
 
     c = Array(length).fill(0), 
 
     i = 1; 
 

 
    yield permutation; 
 
    while (i < length) { 
 
    if (c[i] < i) { 
 
     var k = i % 2 && c[i]; 
 
     [permutation[i], permutation[k]] = [permutation[k], permutation[i]]; 
 
     ++c[i]; 
 
     i = 1; 
 
     yield permutation; 
 
    } else { 
 
     c[i++] = 0; 
 
    } 
 
    } 
 
} 
 

 
// sample input: 
 
var s = 'this is a test'; 
 

 
for (var words of permute(s.split(/\s+/))) { 
 
    console.log(words.join(' ')); 
 
}
.as-console-wrapper { max-height: 100% !important; top: 0; }

関連する問題