描述
给出一个名字,该名字有26个字符组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。
每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个不同字母拥有相同的“漂亮度”。字母忽略大小写。给出多个名字,计算每个名字最大可能的“漂亮度”。本题含有多组数据。
输入描述:整数N,后续N个名字
输出描述:每个名称可能的最大漂亮程度
示例1
输入:
2
zhangsan
lisi
输出:
192
101
每个名字漂亮度最大,也就是对于每个名字里面出现最多的赋值最大的数字,依次类推。本题目有多个样例,每个样例是数字n,以及n个名字。因此需要两重循环,一重循环接收数字n,另一重循环接收n个名字。
#include<bits/stdc++.h>
using namespace std;
typedef pair<char,int> PII;
int main()
{
int n;
while(cin>>n)
{
while(n--)
{
string str;
cin>>str;
vector<int> temp(26,0);
for(auto x:str)
{
if(x>='a'&&x<='z')
temp[x-'a']++;
else temp[x-'A']++;
}
sort(temp.begin(),temp.end());
int res=0,k=26;
for(int i=25;i>=0;i--)
{
res+=temp[i]*k--;
}
cout<<res<<endl;
}
}
return 0;
}