题解 | #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")
查看14道真题和解析