求字符串排列组合
获取字符串无重复排列组合数量。
输入:
baac
输出:
12
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()){
HashMap<Character,Integer> map = new HashMap<Character, Integer>();
String str = in.nextLine();
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if (!map.containsKey(c)){
map.put(c,1);
}else{
int tmp = map.get(c);
map.put(c,++tmp);
}
}
int mul = 1;
Iterator iter = map.entrySet().iterator();
while(iter.hasNext()){
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object value = entry.getValue();
mul *= jiecheng((int)value);
}
System.out.println(jiecheng(str.length())/mul);
}
}
public static int jiecheng(int n){
if (n == 1) return 1;
return n * jiecheng(n-1);
}
}