题解 | #名字的漂亮度#

名字的漂亮度

http://www.nowcoder.com/practice/02cb8d3597cf416d9f6ae1b9ddc4fde3

统计频率最高的,然后从26开始一直×到没

#include <algorithm>
#include <map>
#include <vector>

using namespace std;

int main() {
    int n;
    while(cin>>n){
        map<char,int> m;
        string temp;
        for(int i = 0;i<n;i++){
            cin>>temp;
            for(int x = 0;x<temp.size();x++){
                m[temp[x]]++;
            }
            vector<pair<char,int>> v;
            v.assign(m.begin(),m.end());
            sort(v.begin(),v.end(),[](const pair<char,int> &lhs,
                                     const pair<char,int> &rhs){
                return lhs.second>rhs.second;
            });
            int max = 26;
            int sum = 0;
            for(auto it:v){
                sum+=it.second*max--;
            }
            cout<<sum<<endl;
            m.clear();
            v.clear();
        }//for
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务