java 字符串的完美度
package com.mytest;import java.io.IOException;import java.lang.reflect.Array;import java.math.BigDecimal;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.Hashtable;import java.util.Iterator;import java.util.LinkedList;import java.util.List;import java.util.Set;import java.util.TreeMap;import java.util.TreeSet;import java.util.regex.Matcher;import java.util.regex.Pattern;import net.sourceforge.sizeof.SizeOf;public class Test { public static int perfect(String s) { HashMap<Character,Integer> map = new HashMap<Character,Integer>(); for(int i=0;i<s.length();i++){ char c = s.charAt(i); map.put(c,map.get(c)==null?1:map.get(c)+1); } char[] array_char = new char[map.size()]; int[] array_count = new int[map.size()]; Set<Character> a = map.keySet(); Iterator<Character> it = a.iterator(); int index = 0; while(it.hasNext()) { char ch = it.next(); array_char[index] = ch; array_count[index] = map.get(ch); index++; } //从高到底进行设置完美度 int maxValue = 26; //将最大的放到最后 int result = 0; for(int i=0;i<array_count.length;i++) { for(int j=0;j<array_count.length-i;j++){ int temp = array_count[i]; if(temp>array_count[j]){ array_count[i] = array_count[j]; array_count[j] = temp; } } result += array_count[array_count.length-1]*maxValue; maxValue--; } return result ; } //start 提示:自动阅卷起始唯一标识,请勿删除或增加。 public static void main(String args[]) { String str = "df"; int res = perfect(str); System.out.println(res); } //end //提示:自动阅卷结束唯一标识,请勿删除或增加。}