连续几道简单的题都没一次通过..哭瞎~发代码到这里吧'
字符串的完美度
题目详情:
我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,
而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。
现在给定一个字符串,输出它的最大可能的完美度。
例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。
函数头部
C
int perfect(const char *s);
C++
int perfect(const string &s);
java
public static int perfect(String s);
package csdn;
import java.util.*;
public class wanmei {
public static int perfect(String s) {
if(s=="") return 0;
int length=s.length();
int[] arr=new int[26];
int count=0;
int j=26;
for(int i=0;i<length;i++){
char value=s.charAt(i);
int num=(value-'a'<0)?(value-'A'):(value-'a');
arr[num]++;
}
Arrays.sort(arr);
int c=arr[25];
for(int i=25;i>=0 && arr[i]!=0;i--,j--){
count+=arr[i]*j;
}
return count;
}
public static void main(String args[])
{
System.out.println(perfect("dad"));
}
}