この質問はstackoverflowで以前に回答されていることを知っていますが 、正しいコードを教えてくれるのではなく、何が間違っているのか知りたいので、これを求めています。
public static void printCombinations(String str){
printCombinations(str, 0, str.length()-1);
}
public static void printCombinations(String str,int k,int n){
if(k == n)
System.out.println(str);
else {
for(int i=k;i<n;i++){
String tmp=modifyString(str,i,k);
printCombinations(tmp,k+1,n);
modifyString(str,i,k);
}
}
}
public static String modifyString(String str,int x,int y){
// for swapping characters inside a string
char arr[]=str.toCharArray();
char t= arr[x];
arr[x]=arr[y];
arr[y]=t;
String s= new String(arr);
return s;
}
関数を として呼び出していますprintCombinations(s)
。