读书人

庞果网之字符串的完善度

发布时间: 2013-11-04 16:56:03 作者: rapoo

庞果网之字符串的完美度
题目详情

我们要给每个字母配一个1-26之间的整数,具体怎么分配由你决定,但不同字母的完美度不同,

而一个字符串的完美度等于它里面所有字母的完美度之和,且不在乎字母大小写,也就是说字母F和f的完美度是一样的。


现在给定一个字符串,输出它的最大可能的完美度。

例如:dad,你可以将26分配给d,25分配给a,这样整个字符串最大可能的完美度为77。


/**********************************   日期:2013-11-03*   作者:SJF0115*   题号: 题目 字符串的完美度*   来源:http://hero.pongo.cn/Question/Details?ID=71&ExamID=69*   结果:AC*   来源:庞果网*   总结:**********************************/#include<iostream>#include<stdio.h>#include<string>using namespace std;int cmp(const void*a,const void*b)  {  return *(int*)b - *(int*)a;  }  int perfect(const string &s){int i;int len = s.size();int count[26] = {0};//统计字母个数for(i = 0;i < len;i++){if(s[i] >= 'A' && s[i] <= 'Z'){count[s[i] - 'A'] ++;}else if(s[i] >= 'a' && s[i] <= 'z'){count[s[i] - 'a'] ++;}}//从大到小排序qsort(count,26,sizeof(count[0]),cmp);int perfectDegree = 26;int sum = 0;//计算完美度for(i = 0;i < 26;i++){sum += count[i] * perfectDegree;perfectDegree --;}return sum;}int main(){   int i,n;string str;while(cin>>str){printf("%d\n",perfect(str));}    return 0;}


读书人网 >编程

热点推荐