题解 | #ZOJ#

ZOJ

https://www.nowcoder.com/practice/7557d470617c464f9200d93acf721471

#include <iostream>
#include <map>
using namespace std;
//将所有zoj计数存入map,然后开始一轮遍历一次map(map自动排序,逆序就是zoj),如果对应次数不为0就在结果串中加入当前字母,同时让次数-1。当次数全为0时就得到了目标串
int main() {
    string s;
    cin>>s;
    map<char, int> m;
    for (int i=0; i<s.size(); i++) {
        m[s[i]]++;
    }
    map<char, int>::reverse_iterator it;
    string res="";
    int count=0;
    while(count<3)
    {
        count=0;
        for(it=m.rbegin();it!=m.rend();it++)
        {
            if(it->second>0)
            {
                res.push_back(it->first);
                it->second--;
                
            }
            if(it->second==0)
            {
                count++;
            }       
        }
    }
    cout<<res;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

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