题解 | #名字的漂亮度#
名字的漂亮度
https://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3
#include <algorithm> #include <iostream> #include <map> #include <vector> using namespace std; bool compare(const pair<char, int>& a, const pair<char, int>& b) { return a.second > b.second; } int beauty(string s) { int sum = 0, value = 26; map<char, int> mp; for (char i : s) { mp[i] += 1; } vector<pair<char, int>> vec(mp.begin(), mp.end()); sort(vec.begin(), vec.end(), compare); for (auto v : vec) { if (vec.size() != 0) { sum += value * v.second; value--; } } return sum; } int main() { int n; vector<string> str; while (cin >> n) { str.resize(n); for (int i = 0; i < n; i++) { cin >> str[i]; } for (auto i : str) { int res = beauty(i); cout << res << endl; } } return 0; } // 64 位输出请用 printf("%lld")