首页 > 代码库 > HDU 3783
HDU 3783
上题目Problem Description读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。
Input题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。
1<=length<=100。
Output对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。
Sample InputZZOOOJJJ
ZZZZOOOOOJJJ
ZOOOJJ
E
Sample OutputZOJZOJOJ
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;
}
1<=length<=100。
具体可见样例。
ZZOOOJJJ ZZZZOOOOOJJJ ZOOOJJ E
ZOJZOJOJ ZOJZOJZOJZOO ZOJOJO
#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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。