首页 > 代码库 > HDU 3783

HDU 3783

上题目
Problem Description
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。

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

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

Sample Input
ZZOOOJJJ ZZZZOOOOOJJJ ZOOOJJ E

Sample Output
ZOJZOJOJ ZOJZOJZOJZOO ZOJOJO

Source
浙大计算机研究生复试上机考试-2009年
 
思想就是把ZOJ三个字符存到数组里面然后按顺序输出。
贴代码。
#include <string.h>
#include <stdio.h>
int main()
{
	char a[105];
	int b[105];
	while(scanf("%s",a)!=EOF &&a[0]!='E')
	{
		memset(b,0,sizeof(b));
		int l,i;
		l=strlen(a);
		for(i=0;i<l;i++)
		{
            b[a[i]]++;
		}
		while(l--)
		{
			if(b['Z']>0)
			{
				printf("Z");
				b['Z']--;
			}
			if(b['O']>0)
			{
				printf("O");
				b['O']--;
			}
			if(b['J']>0)
			{
				printf("J");
				b['J']--;
			}
		}
		printf("\n");
	}
	return 0;
}

 

HDU 3783