题解 | ZOJ
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<map>
using namespace std;
int main() {
string s;
while (cin >> s) {
map<char, int>m;
m['Z'] = m['O'] = m['J'];
for(int i = 0; i < s.length(); i++)
{
m[s[i]]++;
}
while(m['Z'] > 0 || m['O'] > 0 || m['J'] > 0)
{
if(m['Z'] > 0)
cout << 'Z';
m['Z'] --;
if(m['O'] > 0)
cout << 'O';
m['O'] --;
if(m['J'] > 0)
cout << 'J';
m['J'] --;
}
}
}
只需要依次输出Z O J,然后要求一个条件,大于0,然后输出后数量减一即可

查看14道真题和解析