使用map统计出现次数,vector和sort实现按照出现次数排序
名字的漂亮度
http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
#include <bits/stdc++.h>
using namespace std;
int beautiful(string s) {
map<char, int> cmap;
vector<pair<char, int>> pvec;
for (char c : s) {
++cmap[c];
}
for (auto p : cmap) {
pvec.push_back(p);
}
sort(pvec.begin(), pvec.end(), [] (pair<char, int> x, pair<char, int> y) {return x.second > y.second;});
int ret = 0;
int sig = 26;
for (int i = 0; i < pvec.size(); ++i) {
ret += pvec[i].second * sig;
--sig;
}
return ret;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; ++i) {
string s;
cin >> s;
cout << beautiful(s) << endl;;
}
}