描述: | 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。 |
题目类别: | 字符串 |
难度: | 初级 |
运行时间限制: | 无限制 |
内存限制: | 无限制 |
阶段: | 入职前练习 |
输入: | 整数N,后续N个名字 N个字符串,每个表示一个名字 |
输出: | 每个名称可能的最大漂亮程度 |
样例输入: | 2 zhangsan lisi |
样例输出: | 192 101 |
很水的练习题。
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int beauty(string str)
{
int count[26];
for(int i=0;i<26;i++) //初始化
count[i]=0;
for(int i=0;i!=str.size();i++)
{
int flag = (int)tolower(str[i]) - (int)'a';
count[flag]++;
}
sort(count, count+26);
int score = 0;
for(int i=25,j=26; i>=0 && count[i]!=0; i--,j--)
{
score+=count[i]*j;
}
return score;
}
int main(){
int n;cin>>n;
string *str = new string[n]();
for(int i=0;i<n;i++)
{
cin>>str[i];
cout<<beauty(str[i])<<endl;
}
getchar();getchar();
return 0;
}