1032.ZOJ问题

Posted bernieloveslife

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1032.ZOJ问题相关的知识,希望对你有一定的参考价值。

题目描述:
读入一个字符串,字符串中包含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;
}

 



以上是关于1032.ZOJ问题的主要内容,如果未能解决你的问题,请参考以下文章

九度OJ—题目1032:ZOJ

题目1032:ZOJ--------------------自从有了while(true)以后,好多输入都变得很方便

微信小程序代码片段

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

为啥这个代码片段说包含错误?

这个代码片段有啥作用?