HDU - 3783 ZOJ

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 <stdio.h>
#include <string.h>

using namespace std;

char s[105];

int main()
{
    int z, o, j;
    int len;
    while (gets(s)){
        if (strcmp(s, "E") == 0)
            break;
        len = strlen(s);
        z = o = j = 0;
        for (int i = 0; i < len; i++){
            switch(s[i]){
                case 'Z': z++; break;
                case 'O': o++; break;
                case 'J': j++; break;
                default: break;
            }
        }
        while (z>0 || o>0 || j>0){
            if (z > 0)
                printf("Z"), z--;
            if (o > 0)
                printf("O"); o--;
            if (j > 0)
                printf("J"); j--;
        }
        printf("\n");
    }
    return 0;
}
发布了339 篇原创文章 · 获赞 351 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/Aibiabcheng/article/details/105353853
ZOJ