龐果網之字符串的完美度
題目詳情
我們要給每個字母配一個1-26之間的整數,具體怎麼分配由你決定,但不同字母的完美度不同,
而一個字符串的完美度等於它裏麵所有字母的完美度之和,且不在乎字母大小寫,也就是說字母F和f的完美度是一樣的。
現在給定一個字符串,輸出它的最大可能的完美度。
例如:dad,你可以將26分配給d,25分配給a,這樣整個字符串最大可能的完美度為77。
/********************************* * 日期:2013-11-03 * 作者:SJF0115 * 題號: 題目 字符串的完美度 * 來源:https://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; }
天貓搞活動。。。。。。。。
我在用來往,用它我們就能免費語聊!11月1日到11月9日用淘寶賬號登陸我還能送你2元雙11現金紅包!點擊 點擊打開鏈接 ,趕緊拿紅包吧!
最後更新:2017-04-03 14:54:03