确定某字符串的所有排列组合
/** * 功能:确定某字符串的所有排列组合。 */ 注意:不考虑重复字符。若考虑重复字符,只需在加入permulations时去掉重复的字符串即可。 [java] view plain copy /** * 思路:元素由少到多,将新的元素塞进所有字符串中间的任意可能位置。 * @param str * @return */ public static ArrayList<String> getPerms(String str){ if(str==null) return null; ArrayList<String> permutations=new ArrayList<String>(); if(str.length()==0){ permutations.add(""); return permutations; } char first=str.charAt(0); String remainder=str.substring(1); ArrayList<String> words=getPerms(remainder); for(String word:words){ for(int i=0;i<=word.length();i++){ String s=insertCharAt(word, first, i); permutations.add(s); } }