问题描述:
一组字符串的全排列,按照全排列的顺序输出,并且每行结尾无空格。
输入:
输入一个字符串
输入示例:
请输入全排列的字符串:
abc
输出示例:
a b c
a c b
b a c
b c a
c b a
c a b
import java.util.Scanner;
public class 字符串的全排列 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner abc=new Scanner(System.in);
String a=abc.next();
char[] data=a.toCharArray();
quan(data,0);
}
//k:当前的交换位置(关注点),与其后的元素交换
public static void quan(char[] a,int k){
//出口
if (k==a.length) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
}
//入口
for (int i = k; i < a.length; i++) {
{char t=a[k];a[k]=a[i];a[i]=t;};
quan(a, k+1);
{char t=a[k];a[k]=a[i];a[i]=t;};//回溯
}
}
}