- 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; }