您的位置:首页 > 其它

HDU3783:ZOJ

2013-03-05 13:26 183 查看
Problem Description
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。




Input
题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。

1<=length<=100。





Output
对于每组输入,请输出一行,表示按照要求处理后的字符串。

具体可见样例。




Sample Input
ZZOOOJJJ
ZZZZOOOOOJJJ
ZOOOJJ
E






Sample Output
ZOJZOJOJ
ZOJZOJZOJZOO
ZOJOJO










#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{
    char str[1000];
    int z,o,j;
    while(gets(str))
    {
        if(!strcmp(str,"E"))
        break;
        z = o = j = 0;
        int len = strlen(str);
        int i;
        for(i = 0;i<len;i++)
        {
            if(str[i] == 'Z')
            z++;
            else if(str[i] == 'O')
            o++;
            else if(str[i] == 'J')
            j++;
        }
        while(z || o || j)
        {
            if(z)
            {
                cout << "Z";
                z--;
            }
            if(o)
            {
                cout << "O";
                o--;
            }
            if(j)
            {
                cout << "J";
                j--;
            }
        }
        cout << endl;
    }

    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: