- 题目描述:
-
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。
- 输入:
-
题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。
1<=length<=100。
- 输出:
-
对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。
- 样例输入:
-
ZZOOOJJJ
ZZZZOOOOOJJJ
ZOOOJJ
E
- 样例输出:
-
ZOJZOJOJ
ZOJZOJZOJZOO
ZOJOJO
#include<iostream>
#include<cstring>
using namespace std;
int main(){
string s;
while(getline(cin,s) && s!="E"){
int z=0,o=0,j=0;
for(int i=0;i<s.size();i++){
if(s[i]=='Z') z++;
else if(s[i]=='O') o++;
else if(s[i]=='J') j++;
}
for(;z>0 && o>0 && j>0;z--,o--,j--){
cout<<"ZOJ";
}
if(z==0){
for(;o>0 && j>0;o--,j--){
cout<<"OJ";
}
if(o==0) {
for(;j>0;j--) cout<<"J";
}
else for(;o>0;o--) cout<<"O";
}
if(o==0){
for(;z>0 && j>0;z--,j--){
cout<<"ZJ";
}
if(z==0) {
for(;j>0;j--) cout<<"J";
}
else for(;z>0;z--) cout<<"Z";
}
if(j==0){
for(;o>0 && z>0;o--,z--){
cout<<"ZO";
}
if(o==0) {
for(;z>0;z--) cout<<"Z";
}
else for(;o>0;o--) cout<<"O";
}
cout<<endl;
}
return 0;
}