HDOJ3783

来源:互联网 发布:淘宝店铺名字大全楚 编辑:程序博客网 时间:2024/04/28 07:19

ZOJ;思路很简单;用三个指针表示'Z','O','J'的位置即可;看了下别人的题解,我写得有点冗余了,代码如下:

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>#define MAX 105using namespace std;char s[MAX];int main(int argc, char *argv[]) {while(1){int i,c1=0,c2=0,c3=0;cin>>s;if(s[0] == 'E')break;char *p0 = s;char *p1 = s;char *p2 = s;char *p3 = s;int size = strlen(s);for(i=0; i<=size-1; i++){if(s[i] == 'Z') c1++;if(s[i] == 'O') c2++;if(s[i] == 'J') c3++;}for(i=0; i<c1; i++)s[i] = 'Z';for(i=c1; i<c1+c2; i++)s[i] = 'O';for(i=c1+c2; i<c1+c2+c3; i++)s[i] = 'J';p2 = p1 + c1;p3 = p1 + c1 + c2;for(i = 0; i<=size-1; i++){if(p1 < p0 + c1){printf("%c",*p1++);}if(p2 < p0 + c1 + c2){printf("%c",*p2++);}if(p3 < p0 + c1 + c2 + c3){printf("%c",*p3++);}}printf("\n");}return 0;}


0 0
原创粉丝点击