zoukankan      html  css  js  c++  java
  • 九度OJ—题目1032:ZOJ

    题目描写叙述:
    读入一个字符串。字符串中包括ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出。当某个字符用完时,剩下的仍然依照ZOJ的顺序输出。
    输入:
    题目包括多组用例,每组用例占一行,包括ZOJ三个字符,当输入“E”时表示输入结束。


    1<=length<=100。

    输出:
    对于每组输入,请输出一行。表示依照要求处理后的字符串。
    详细可见例子。
    例子输入:
    ZZOOOJJJ
    ZZZZOOOOOJJJ
    ZOOOJJ
    E
    例子输出:
    ZOJZOJOJ
    ZOJZOJZOJZOO
    ZOJOJO
    来源:
    2009年浙江大学计算机及软件project研究生机试真题
    答疑:
    解题遇到问题?分享解题心得?讨论本题请訪问:http://t.jobdu.com/thread-7756-1-1.html


        #include<stdio.h>
        #include<string.h>
        int main()
        {
            char s[100];
            int i;
            while(scanf("%s",s)!=EOF){
                if(strcmp(s,"E")==0) break;
                int z=0,o=0,j=0;
                for(i=0;s[i]!='';i++){
                    if(s[i]=='Z') z++;
                    else if(s[i]=='O') o++;
                    else j++;   
                }
                if(z>o){
                    if(o>j){ // z o j
                        for(i=0;i<j;i++) printf("ZOJ");
                        for(i=0;i<o-j;i++) printf("ZO");
                        for(i=0;i<z-o;i++) printf("Z");
                    }
                    else  if(z>j) { // z j o
                        for(i=0;i<o;i++) printf("ZOJ");
                        for(i=0;i<j-o;i++) printf("ZJ");
                        for(i=0;i<z-j;i++) printf("Z");           
                    }
                    else{  // j z o
                        for(i=0;i<o;i++) printf("ZOJ");
                        for(i=0;i<z-o;i++) printf("ZJ");
                        for(i=0;i<j-z;i++) printf("J");
                    }
                }else {
                    if(z>j){  // o z j
                        for(i=0;i<j;i++) printf("ZOJ");
                        for(i=0;i<z-j;i++) printf("ZO");
                        for(i=0;i<o-z;i++) printf("O");
                    }
                    else  if(j>o) { // j o z
                        for(i=0;i<z;i++) printf("ZOJ");
                        for(i=0;i<o-z;i++) printf("OJ");
                        for(i=0;i<j-o;i++) printf("J");
                    }
                    else {// o j z
                        for(i=0;i<z;i++) printf("ZOJ");
                        for(i=0;i<j-z;i++) printf("OJ");
                        for(i=0;i<o-j;i++) printf("O");
                    } 
                }
                printf("
    ");
            }
            return 0;   
        }
        /**************************************************************
            Problem: 1032
            User: vhreal
            Language: C
            Result: Accepted
            Time:0 ms
            Memory:912 kb
        ****************************************************************/
    
    


  • 相关阅读:
    http://codeforces.com/problemset/problem/594/A
    http://codeforces.com/contest/610/problem/D
    http://codeforces.com/contest/612/problem/D
    http://codeforces.com/problemset/problem/712/D
    http://codeforces.com/problemset/problem/545/D
    18/10/26 周五集训队第二次比赛补题题解
    归并排序
    hdu 2510 符号三角形
    位运算符的小总结
    hdu 1584 蜘蛛纸牌
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6993628.html
Copyright © 2011-2022 走看看