题解 | #名字的漂亮度#

名字的漂亮度

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

//20min我就写了个
//辣眼睛了 对不起对不起

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main(){
    int N;
    cin >> N;
    for(int i = 0;i<N;++i){
        string inputstr;
        cin>>inputstr;
        vector<int> vecsize(26,0);
        int maxsize = 0;
        //相同字母就累加,记下最大的字母
        for(int j = 0;j<inputstr.size();++j){
            ++vecsize[int(inputstr[j]-'a')];
            maxsize = max(maxsize,vecsize[int(inputstr[j]-'a')]);
        }
        //从最大漂亮度开始遍历
        int res = 0,record = 26;
        for(int k = maxsize;k>=1;--k){
            for(int j = 0;j<vecsize.size();++j){
                if(k == vecsize[j]){
                    res += record*k;
                    --record;
                }
            }
        }
        cout << res << endl;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务