void permute(String str) {
int length = str.length();
boolean[] used = new boolean[length];
StringBuilder out = new StringBuilder();
char[] in = str.toCharArray();
doPermute(in, out, used, length, 0);
}
static void doPermute(char[] in, StringBuilder out,
boolean[] used, int length, int level) {
if (level == length) {
System.out.println(out.toString());
++count1;
return;
}
for (int i = 0; i < length; ++i) {
if (used[i]) {
continue;
}
out.append(in[i]);
used[i] = true;
doPermute(in, out, used, length, level + 1);
used[i] = false;
out.setLength(out.length() - 1);
}
}
int length = str.length();
boolean[] used = new boolean[length];
StringBuilder out = new StringBuilder();
char[] in = str.toCharArray();
doPermute(in, out, used, length, 0);
}
static void doPermute(char[] in, StringBuilder out,
boolean[] used, int length, int level) {
if (level == length) {
System.out.println(out.toString());
++count1;
return;
}
for (int i = 0; i < length; ++i) {
if (used[i]) {
continue;
}
out.append(in[i]);
used[i] = true;
doPermute(in, out, used, length, level + 1);
used[i] = false;
out.setLength(out.length() - 1);
}
}
No comments:
Post a Comment