首页 > ACM题库 > HDU-杭电 > HDU 3783-ZOJ-字符串-[解题报告]HOJ
2015
04-11

HDU 3783-ZOJ-字符串-[解题报告]HOJ

ZOJ

问题描述 :

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

输入:

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

输出:

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

样例输入:

ZZOOOJJJ
ZZZZOOOOOJJJ
ZOOOJJ
E

样例输出:

ZOJZOJOJ
ZOJZOJZOJZOO
ZOJOJO

不需要任何思考,直接做就可以了。

#include <cstdio>
#include <cstdlib>
#include <cstring>

const int maxx = 102;

char str[maxx];
int zn,on,jn;

int main(){ 
	int len,i;

	while(scanf("%s",str) && strcmp(str,"E")){
		zn = on = jn = 0;
		len = strlen(str);
		for(i=0;i<len;++i){
			if(str[i]=='Z'){
				++zn;
			}else if(str[i]=='O'){
				++on;
			}else{
				++jn;
			}
		}
		while(zn>0 || on>0 || jn>0){
			if(zn>0){
				printf("Z");
				--zn;
			}
			if(on>0){
				printf("O");
				--on;
			}
			if(jn>0){
				printf("J");
				--jn;
			}
		}
		printf("\n");
	}
	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

参考:http://blog.csdn.net/iaccepted/article/details/20854259