题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
#include <algorithm> #include <iostream> #include <string> #include <unordered_map> #include <utility> #include <vector> using namespace std; bool cmp(pair<char, int>& p1, pair<char, int>& p2) { return p1.second > p2.second; } int main() { int N; while (cin >> N) { // 注意 while 处理多个 case vector<string> res; cin.get(); for (int i = 0 ; i < N; i++) { string s; getline(cin, s); res.push_back(s); } vector<int> ans; for (auto s : res) { unordered_map<char, int> map; for (auto c : s) { map[c]++; } vector<pair<char, int>> v(map.begin(),map.end()); //将map中的元素拷贝到vector中 sort(v.begin(), v.end(), cmp); int p = 26; int oans = 0; for (auto i : v) { oans = oans + i.second * p; p--; } ans.push_back(oans); } for (auto a : ans) { cout << a << endl; } } } // 64 位输出请用 printf("%lld")