import java.util.*;
public class PermutationAndCombination
{
/**
* author:54powerman@163.com
* blog:http://blog.sina.com.cn/m/54powerman
**/
public static void main(String[] args)
{
long date1=System.currentTimeMillis();
List list=count("01234567");//89abcdefghijklmnopqrstuvwxyz
for(int i=0;i<list.size();i++)
{
System.out.println(list.get(i));
}
System.out.println("Process complete!Get "+list.size()+" strings and take ");
System.out.print(System.currentTimeMillis()-date1+" ms");
}
public static List count(String strData)
{
List list = new ArrayList();
if(strData.length()<2)
{
list.add(strData);
return list;
}
else if(strData.length()==2)
{
String str1=strData.substring(0,1);
String str2=strData.substring(1);
list.add(strData);
list.add(str2+str1);
}
else
{
for(int i=0;i<strData.length();i++)
{
String strTmp=strData.substring(i,i+1);
List listTmp=count(strData.substring(0,i)+strData.substring(i+1,strData.length()));
for(int j=0;j<listTmp.size();j++)
{
list.add(strTmp+listTmp.get(j).toString());
}
}
}
return list;
}
};
写在这里不是因为这算法如何,而是,只是一道题目的解答——请用递归算法找出字符串中字符的排列组合。