2012-03-01 6 views
5

私は、各インデックスと異なるマッピングを持つ文字配列c [] []を持っています。たとえば :配列内のすべての文字の組み合わせを取得します。

{'a', 'b', 'c', 'd', 'e', 'f' } {'g', 'h', 'i' } 

私は文字列としてこの配列のためにすべての可能な文字の組み合わせを返す必要があります。 上記の文字配列の意味は次のとおりです。 "ag"、 "ah"、 "ai"、 "bg"、 "bh"、 "bi"、 "cg"、 "ch"、 "ci"等 上記のような2つだけの文字配列に対してこれを行うのは簡単でしょうが、配列がさらにあれば、何をすべきかわかりません... 私はあなたにすべてを求めています私を助けて! :) 2ネストされたループが何をすべき二つの配列のために

+0

チェックアウトhttp://stackoverflow.com/questions/2920315/permutation-of-array – JKirchartz

+0

配列は、どのような深さを持っていますか?つまり、どれくらいの次元がありますか? –

答えて

10

:あなたは、再帰的または同等のスタックベースのソリューションを必要とするより多くの営巣のために

for (int i = 0 ; i != c[0].length ; i++) { 
    for (int j = 0 ; j != c[1].length ; j++) { 
     System.out.writeln(""+c[0][i]+c[1][j]); 
    } 
} 

void combos(int pos, char[][] c, String soFar) { 
    if (pos == c.length) { 
     System.out.writeln(soFar); 
     return; 
    } 
    for (int i = 0 ; i != c[pos].length ; i++) { 
     combos(pos+1, c, soFar + c[pos][i]); 
    } 
} 

コールこのようなあなたのmain()からこの再帰関数:

combos(0, c, ""); 
+0

ああ、私はこれを理解したはずです。 :p 助けてくれてありがとう!本当に素晴らしいコードです。 – Supervisor

+0

@Supervisorあなたはようこそ!答えがあなたのために働くならば、問題を解決したことを示すために[受諾する](http://meta.stackexchange.com/questions/16721/how-does-accept-rate-work)を検討し、スタックオーバーフローの真新しいバッジ – dasblinkenlight

+0

完了しました。 :) – Supervisor

関連する問題