-
题目描述:
-
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。
-
输入:
-
题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。
1<=length<=100。
-
输出:
-
对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。
-
样例输入:
-
ZZOOOJJJ ZZZZOOOOOJJJ ZOOOJJ E
-
样例输出:
-
ZOJZOJOJ ZOJZOJZOJZOO ZOJOJO
思路:
水题不解释。
代码:
#include <stdio.h>
#include <string.h>
#define N 100
int main(void)
{
int z, o, j;
int i;
char s[N+1];
while (scanf("%s", s) != EOF)
{
if (strcmp(s, "E") == 0)
break;
z = o = j = 0;
for(i=0; s[i]; i++)
{
if (s[i] == 'Z')
z ++;
else if (s[i] == 'O')
o ++;
else
j ++;
}
while (z!=0 || o!=0 || j!=0)
{
if (z!=0)
{
z--;
printf("Z");
}
if (o!=0)
{
o--;
printf("O");
}
if (j!=0)
{
j--;
printf("J");
}
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1032
User: liangrx06
Language: C
Result: Accepted
Time:0 ms
Memory:912 kb
****************************************************************/