回溯法解决全排列问题,用java实现,通过键盘输入
时间: 2024-03-20 21:39:10 浏览: 50
回溯法解决全排列问题
5星 · 资源好评率100%
好的,以下是使用回溯法解决全排列问题的Java代码,通过键盘输入:
```java
import java.util.Scanner;
public class Permutation {
// 数组元素交换
public static void swap(char[] arr, int i, int j) {
char temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
// 回溯法计算全排列
public static void backtrack(char[] arr, int start, int end) {
if (start == end) {
// 打印当前排列结果
System.out.println(arr);
return;
}
for (int i = start; i <= end; i++) {
// 交换元素,生成新的排列
swap(arr, start, i);
// 递归生成下一位
backtrack(arr, start + 1, end);
// 恢复数组原样,方便下一次交换
swap(arr, start, i);
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一串字符:");
String str = input.nextLine();
char[] arr = str.toCharArray();
backtrack(arr, 0, arr.length - 1);
}
}
```
运行程序后,会提示输入一串字符,输入后程序会生成该字符串的全排列结果并打印出来。
阅读全文