题解 | #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")