Vjudge - F - 比前面更简单的模拟

2017-07-16 07:31:35 

  • writer:pprp
  • 题目介绍:很基础的string用法
  • 题目如下:
  • 读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。
    Input题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。 
    1<=length<=100。 
    Output对于每组输入,请输出一行,表示按照要求处理后的字符串。 
    具体可见样例。Sample Input
    ZZOOOJJJ
    ZZZZOOOOOJJJ
    ZOOOJJ
    E
    Sample Output
    ZOJZOJOJ
    ZOJZOJZOJZOO
    ZOJOJO
  • 代码如下:
  • #include <iostream>
    #include <string>
    
    using namespace std;
    
    
    int main()
    {
        string str; 
        while(cin >> str&&str[0]!='E')
        {
              int cntz = 0;
              int cnto = 0;
              int cntj = 0;
              for(size_t i = 0 ; i < str.length() ;i++)
              {
                    if(str[i] == 'Z')
                    {
                        cntz++;  
                    }
                    else if(str[i] == 'O')
                    {
                          cnto++;                      
                    }
                    else
                    {
                          cntj++;                      
                    }
              }
              
              for(size_t i = 0 ; i < str.length();i++)
              {
                    if(cntz-->0)
                    {
                          cout <<"Z";
                    }
                    if(cnto-->0)
                    {
                          cout <<"O";
                    }
                    if(cntj-->0)
                    {
                          cout <<"J";
                    }
              }
              cout << endl;
        }
        return 0;
    }

     

  • 运行结果:Accepted
posted @ 2017-07-16 07:32  pprp  阅读(276)  评论(0编辑  收藏  举报