递归-B-变位字:排列所有组合
发布日期:2021-05-16 15:22:33 浏览次数:17 分类:精选文章

本文共 1896 字,大约阅读时间需要 6 分钟。

AnagramApp - 变位字生成工具

变位字生成工具

通过递归算法生成所有可能的字符排列

生成结果

已生成  0 个变位字

总字数: 0 个字

总次数: 0 次

package anagram;
public class AnagramApp {
static int size;
static int count;
static char[] arrChar = new char[100];
public static void main(String[] args) throws IOException {
System.out.print("Enter a word:");
String input = getString();
size = input.length();
count = 0;
for (int j = 0; j < size; j++) {
arrChar[j] = input.charAt(j);
}
doAnagrams(size);
}
private static void doAnagrams(int newSize) {
if (newSize == 1) {
return;
}
for (int j = 0; j < newSize; j++) {
doAnagrams(newSize - 1);
if (newSize == 2) {
displayWord();
}
rotate(newSize);
}
}
private 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];
}
arrChar[j - 1] = temp;
}
private static void displayWord() {
System.out.print(++count + " ");
for (int j = 0; j < size; j++) {
System.out.print(arrChar[j]);
}
System.out.print(" ");
System.out.flush();
if (count % 6 == 0) {
System.out.println(" ");
}
}
private static String getString() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
return br.readLine();
}
}
上一篇:递归-C-二分查找+排序
下一篇:递归-A-三角数字

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年05月08日 21时52分02秒