- rbegin, rend. 可以递增排序。
- 刚开始全部转换为小写,方便以后统计。transform(s.begin(),s.end(),s.begin(),::tolower);//变成小写
- 漂亮度得定义://漂亮度 为 该字母出现得次数乘以26递减
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
while(cin>>n){
vector<string> v;
string s;
for(int i=0; i< n;i++){
cin>>s;
transform(s.begin(),s.end(),s.begin(),::tolower);//变成小写
v.push_back(s);
}
for(int i=0; i < v.size();i++){
string str = v[i];
map<char,int> m;//统计次数
for(auto s: str){
m[s]++;
}
vector<int> ve;//记录每一个字母出现得次数
for(auto x: m){
ve.push_back(x.second);
}
//从大到小进行排序(注意前面有r)
sort(ve.rbegin(),ve.rend());
int sum =0;
for(int i =0, j = 26; i< ve.size();i++,j--){
sum += ve[i]*j;//漂亮度 为 该字母出现得次数乘以26递减
}
cout<<sum<<endl;
}
}
return 0;
}