您的位置:首页 > 其它

名字的漂亮度

2015-08-01 21:30 363 查看
名字的漂亮度=26*字母个数最多的个数+25*字母个数其次的个数+24*字母个数再其次的(忽略大小写)个数+….+1*出现次数最小的个数。

输入:整数N,N个字符串

输出:N个字符串漂亮度

例如:

输入1 a

输出 26

先求出每个字母出现的个数,然后对个数从大到小排序,再求出字符的漂亮度。

#include<iostream>
#include<string>
using namespace std;
int meili(string s){
int a[26] = { 0 };
int l = s.size(),pos;
int i, j,temp,len=0;
for (i = 0; i < l; i++){
if (isupper(s[i]))
pos = s[i] - 65;
else
pos = s[i] - 97;
a[pos]++;
}
for (i = 0; i < 25; i++){
for (j = 0; j < 25 - i; j++){
if (a[j] < a[j + 1]){
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
for (i = 0; a[i] != 0&&i<26; i++)
len += (26 - i)*a[i];
return len;

}
void main(){
cout << "输入:"<<endl;
int n,i;
string s;
cin >> n;
int *len = new int
;
for (i = 0; i < n; i++){
cin >> s;
len[i] = meili(s);
}
cout <<endl<< "输出:" << endl;
for (i = 0; i < n; i++)
cout << len[i] << endl;
system("pause");
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: