hdu 3783 ZOJ
来源:互联网 发布:ubuntu不支持exfat 编辑:程序博客网 时间:2024/05/22 09:40
Description
读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。
Input
题目包含多组用例,每组用例占一行,包含ZOJ三个字符,当输入“E”时表示输入结束。
1<=length<=100。
1<=length<=100。
Output
对于每组输入,请输出一行,表示按照要求处理后的字符串。
具体可见样例。
具体可见样例。
Sample Input
ZZOOOJJJZZZZOOOOOJJJZOOOJJE
Sample Output
ZOJZOJOJZOJZOJZOJZOOZOJOJO
解题思路:
首先分别找出Z,O,J的个数x,y,z,求出三个数中的最大值t,然后将t个ZOJ放到字符串中,然后分别删去多余的Z,O,J即可。
代码:
#include<iostream>#include<stdio.h>#include<string.h>int max(int a,int b){return a>b?a:b;}using namespace std;int main(){char a[400];while(scanf("%s",a) && strcmp(a,"E")!=0){int i,x=0,y=0,z=0,t;for(i=0;a[i]!=0;i++){if(a[i]=='Z') x++;if(a[i]=='O') y++;if(a[i]=='J') z++;} t=max(x,max(y,z)); for(i=0;i<3*t;i+=3) { if(x>0) { a[i]='Z'; x--;} else a[i]='\0'; if(y>0) { a[i+1]='O'; y--;} else a[i+1]='\0'; if(z>0) { a[i+2]='J'; z--;} else a[i+2]='\0';}for(i=0;i<3*t;i++) if(a[i]!='\0') cout<<a[i]; cout<<endl;}return 0;}
阅读全文
0 0
- hdu-3783-ZOJ
- HDU 3783 ZOJ
- HDU 3783 ZOJ
- HDU 3783 ZOJ
- hdu 3783 ZOJ
- HDU 3783 ZOJ
- hdu 3783 ZOJ
- HDU 3783 ZOJ
- HDU 3783 ZOJ
- 字符串--hdu--3783--ZOJ
- hdu 3783 ZOJ
- HDU--3783:ZOJ (水题)
- hdu--(zoj)
- hdu 3788 zoj问题
- hdu 1198/zoj 2412
- ZOJ 3547 & HDU 4059
- HDU 3788 ZOJ问题
- HDU 4334 && ZOJ 3631
- Define location with sdk.dir in the local.properties file or with an ANDROID_HOME environment variab
- hibernate注解主键生成策略
- 静态与非静态方法
- Groovy语言学习和Gradle项目搭建笔记 (上)
- 关于spring boot使用velocity作为视图层模板
- hdu 3783 ZOJ
- HDOJ 3549 Flow Problem(network flow)
- linux初学者-正则表达式
- Hibernate学习-用oracle sequence序列生成ID的配置示例
- HTML入门笔记15-HTML中插入外部链接
- 简单LinuxC程序之位运算的简单应用
- Could not get BatchedBridge, make sure your bundle is packaged correctly
- JQuery.Ajax()的data参数类型
- Lnuix系统结构及文件管理