HDOJ 3783 ZOJ
2015-11-28 20:45
330 查看
Problem Description
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。Input
题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。1<=length<=100。
Output
对于每组输入,请输出一行,表示按照要求处理后的字符串。具体可见样例。
Sample Input
ZZOOOJJJ ZZZZOOOOOJJJ ZOOOJJ E
Sample Output
ZOJZOJOJ ZOJZOJZOJZOO ZOJOJO
本来以为这道题很难要分很多种情况,第一次写的直接超时。
后来发现相当简单只要把条件设好就行(手动再见)。
#include<stdio.h> #include<string.h> int main() { int n,i,t1,t2,t3; char zm[1000]; while(scanf("%s",zm)&&zm[0]!='E') { t1=t2=t3=0; n=strlen(zm); for(i=0;i<n;i++) { if(zm[i]=='Z') t1++; if(zm[i]=='O') t2++; if(zm[i]=='J') t3++; } while(t1||t2||t3) { if(t1!=0) { printf("Z"); t1--; } if(t2!=0) { printf("O"); t2--; } if(t3!=0) { printf("J"); t3--; } } printf("\n"); } return 0; }
然后……把第一次写的贴出来展示一下我到底有多蠢。(血泪脸)
居然还写了130行(我的天哪.jpg)
#include<stdio.h> #include<string.h> char zm[10000],ch[10000]; int main() { int n,i,t1,t2,t3; while(scanf("%s",zm)&&zm[0]!='E') { t1=t2=t3=0; n=strlen(zm); for(i=0;i<n;i++) { if(zm[i]=='Z') t1++; if(zm[i]=='O') t2++; if(zm[i]=='J') t3++; } for(i=1;i<=n;) { ch[i]='Z'; ch[i+1]='O'; ch[i+2]='J'; t1--; t2--; t3--; i+=3; if(t1==0) { for(;i<=n;) { for(;i<=n;) { while(t2==0) { ch[i]='J'; i++; t3--; if(t3==0) break; } while(t3==0) { ch[i]='O'; i++; t2--; if(t2==0) break; } break; } ch[i]='O'; ch[i+1]='J'; t2--; t3--; i+=2; } break; } if(t2==0) { for(;i<=n;) { for(;i<=n;) { while(t1==0) { ch[i]='J'; i++; t3--; if(t3==0) break; } while(t3==0) { ch[i]='Z'; i++; t1--; if(t1==0) break; } break; } ch[i]='Z'; ch[i+1]='J'; t1--; t3--; i+=2; } break; } if(t3==0) { for(;i<=n;) { for(;i<=n;) { while(t2==0) { ch[i]='Z'; i++; t1--; if(t1==0) break; } while(t1==0) { ch[i]='O'; i++; t2--; if(t2==0) break; } break; } ch[i]='Z'; ch[i+1]='O'; t2--; t1--; i+=2; } break; } } for(i=1;i<n;i++) printf("%c",ch[i]); printf("%c\n",ch[i]); } return 0; }
能想得这么麻烦我真是个天才T皿T
相关文章推荐
- 【小程序】青蛙王子
- Space Replacement
- 128.Oracle数据库SQL开发之 数据库对象——用子类型对象代替超类型对象
- 初探内存管理
- windows环境下SVN数据仓库迁移
- 127.Oracle数据库SQL开发之 数据库对象——类型继承
- java后台框架源码 springmvc mybatis oracle mysql maven HTML5 bootstrap 全新技术
- Linux之——基础命令
- Pandas DataFrames筛选数据
- KVO,NSNotification,delegete及block区别
- Merge Two Sorted Lists
- (第八周项目2)建立链串的算法库
- 南大软院大神养成计划第五天
- 应试教育的死穴,恰在于堵死了孩子“犯错”的空间后感
- Mac环境Android 6.0虚拟机启动黑屏解决办法
- Python解析json
- 制作能够显示数学公式以及进行交互式图形绘制的静态页面
- Backbone事件Events
- html基础代码使用
- 126.Oracle数据库SQL开发之 数据库对象——PLSQL中使用对象