解题思路:
(1)自定义排序
#include<iostream>
#include<unordered_map>
#include<vector>
#include<algorithm>
using namespace std;
void helper(string &s) {
unordered_map<char,int> mp;
for(int i=0;i<s.length();i++) {
mp[s[i]]++;
}
vector<pair<char,int>> v;
for(auto it=mp.begin();it!=mp.end();it++) {
v.push_back({it->first,it->second});
}
auto comp=[&](const pair<char,int> &a,const pair<char,int> &b) {
if(a.second>b.second) return true;
else return false;
};
sort(v.begin(),v.end(),comp);
int sum=0,count=0;
for(int i=0;i<v.size();i++) {
sum+=v[i].second*(26-count);
count++;
}
cout<<sum<<endl;
}
int main() {
int n;
string s;
while(cin>>n) {
for(int i=0;i<n;i++) {
cin>>s;
helper(s);
}
}
return 0;
}