class AnagramApp {
static char[] arrChar;
static int size;
public static void main(String[] args) {
String input = "abc";
arrChar =input.toCharArray();
size =input.length();
doAnagram(input.length());
}
public static void doAnagram(int newSize) {
if (newSize == 1)
return;
for (int j = 0; j < newSize; j++) {
doAnagram(newSize - 1);
if (newSize == 2)
displayWord();
rotate(newSize);
}
}
public static void rotate(int newSize) {
int j;
int position = size - newSize;
char temp = arrChar[position];
for (j = position + 1; j < size; j++)
arrChar[j - 1] = arrChar[j];
//j++了
arrChar[j - 1] = temp;
}
public static void displayWord() {
System.out.println(new String(arrChar) +"\t");
}
}
//以上代码看不懂,如何实现的,想要知道思路,不是一点一点运行的分析,
想知道这个人是怎么推理出来要这样做的,