2012-03-01 2 views
5

각 색인에 서로 다른 매핑이있는 문자 배열 c [] []가 있습니다. 예를 들어 :배열의 가능한 모든 문자 조합을 얻습니다.

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

내가 문자열로이 배열에 대한 모든 가능한 문자 조합을 반환해야합니다. 위의 문자 배열에 대한 의미는 다음과 같습니다. "ag", "ah", "ai", "bg", "bh", "bi", "cg", "ch", "ci" 등 위와 같은 두 가지 문자 배열의 경우이 작업을 쉽게 수행 할 수 있지만 더 많은 배열이있는 경우에는 무엇을해야할지 모르겠다. 나는 모두에게 무엇을 요구하고 있는가? 도와주세요! : 두 개의 중첩 루프가해야 할

+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

관련 문제