如下问题:
如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。如:给定 A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。
本题为字符全排列,用到递归。
代码:
importjava.util.Scanner;
public class Demo1 {
static int count=0;
public static void main(String[] args){
System.out.println("请输入需要排列的字符:");
Scanner sc=newScanner(System.in);
String s=sc.nextLine();
StringBuffer sr = newStringBuffer(s);
StringBuffer re = newStringBuffer();
new Demo1().fullPermutation(sr,re);
System.out.println(count);
}
public void fullPermutation(StringBuffersr,StringBuffer re){
if(sr.length()==0){
System.out.println(re);
count++;
return;
}
for(inti=0;i<sr.length();i++){
StringBuffer tsr=newStringBuffer(sr);
StringBuffer tre=newStringBuffer(re);
tre.append(tsr.charAt(i));
tsr.deleteCharAt(i);
new Demo1().fullPermutation(tsr, tre);
}
}
}