0
고정 길이 3 배열의 다른 순열을 생성하는 프로그램을 작성하고 있습니다. 내가 직면하고있는 주요 문제는 항상 dublicate 순열을 생성한다는 것입니다, 어떻게 수정합니까? Java set <>을 사용하지 않아도됩니다. 다음고정 길이 (L)의 다른 뚜렷한 순열을 생성
public class generatingCombination {
public static void main(String[] args) {
String s="ABCDEF";
printArray(s,0,new char[3], new boolean[s.length()]);
}
static void printArray(String s,int x,char []arr, boolean [] used){
if(x==3){
System.out.println(Arrays.toString(arr));
return;
}
else
{
for(int i=0;i<s.length();i++){
if(used[i]) continue;
arr[x]=s.charAt(i);
used[i]=true;
printArray(s, x+1, arr,used);
used[i]=false;
printArray(s, x+1, arr,used);
}
}
}
}
당신은 중복을 받고 있습니다. 왜 그것을하고 있습니까? 설정 값 (두 번째 재귀 호출)없이 self를 호출하면'used' 배열의 요점은 무엇입니까? – Andreas
@YS. - 예상 출력에 예제를 제공하십시오 –
두 번째 printArray 호출은 첫 번째 printArray 호출과 마찬가지로 첫 번째 출력을 인쇄합니다. – tim4242