百度之星资格赛 E题 C++ 与Java

原创 2015年07月07日 13:15:34

题意:中文题,不说了

解法:这道题我没有什么好的方法,就是单个判断,话说,这道题考虑的情况好多,wa了7次才过,各种纠结。。。

ac代码:

  1. #include <iostream>  
  2. #include <string.h>  
  3. #include <string>  
  4. #include <cstdio>  
  5.   
  6. using namespace std;  
  7.   
  8. int main(){  
  9.     //freopen("1.txt","r",stdin);  
  10.     int cnt = 1;  
  11.     string ss;  
  12.     char ch[110];  
  13.     while(gets(ch)){  
  14.       //scanf("%s",ch);  
  15.         //puts("ch");  
  16.       int flag1 = 0,flag2 = 0,flag3 = 0;  
  17.       int len = strlen(ch);  
  18.       for(int i = 0;i < len;++i){  
  19.          if(ch[i] == '_')  
  20.              flag1 = 1;  
  21.          if(flag1 && ch[i] >= 'A' && ch[i] <= 'Z')  
  22.              flag2 = 1;  
  23.          if(ch[i] == '_' && ch[i+1] == '_'){  
  24.            flag3 = 1;  
  25.            break;  
  26.          }  
  27.          if(flag1 == 1 && flag2 ==1){  
  28.            flag3 = 1;  
  29.            break;  
  30.          }  
  31.          if(!((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z') || (ch[i] == '_') )){  
  32.            flag3 = 1;  
  33.            break;  
  34.          }  
  35.       }  
  36.       if(!(ch[0] >= 'a' && ch[0] <= 'z'))  
  37.           flag3 = 1;  
  38.       if(!((ch[len-1] >= 'a' && ch[len-1] <= 'z') || (ch[len-1] >= 'A' && ch[len-1] <= 'Z')))  
  39.           flag3 = 1;  
  40.      // printf("输出样例%d:\n",cnt++);  
  41.       if(flag3 == 1){  
  42.         puts("Error!");  
  43.         continue;  
  44.       }  
  45.       int b1 = 0,b2 = 0;  
  46.       for(int i = 0; i < len;++i){  
  47.           if(ch[i] == '_'){  
  48.             b1 = 1;  
  49.             break;  
  50.           }  
  51.       }  
  52.       if(!b1) b2 = 1;  
  53.       if(b1 == 1){  
  54.           for(int i = 0;i < len;++i){  
  55.               if(ch[i] == '_'){  
  56.                 ch[i+1] = ch[i+1] - 32;  
  57.               }  
  58.           }  
  59.           for(int i = 0;i < len;++i){  
  60.             if(ch[i] == '_')  
  61.                 continue;  
  62.             printf("%c",ch[i]);  
  63.           }  
  64.           printf("\n");  
  65.       }  
  66.       char c;  
  67.       int flag4 = 0;  
  68.       if(b2 == 1){  
  69.           for(int i = 0;i < len;++i){  
  70.               if(ch[i+1] >= 'A' && ch[i+1] <= 'Z'){  
  71.                  c = '_';  
  72.                  flag4 = 1;  
  73.                  ch[i+1] = ch[i+1] + 32;  
  74.               }  
  75.               printf("%c",ch[i]);  
  76.               if(flag4){  
  77.                 printf("%c",c);  
  78.                 flag4 = 0;  
  79.               }  
  80.           }  
  81.           printf("\n");  
  82.       }  
  83.     }  
  84.     return 0;  
  85. }  
版权声明:本文为博主http://www.feixueteam.net原创文章,未经博主允许不得转载。

百度之星2014-2016资格赛试题及解答

百度之星2014-2016资格赛试题、解答及代码实现
  • u014800380
  • u014800380
  • 2017年07月05日 11:34
  • 531

百度之星资格赛——E题

E:C++ 与Java 时间限制: 2000ms 内存限制: 65536kB 描述 在百度之星的贴吧里面,Java的爱好者和C++的爱好者总是能为这两种语言哪个更好争论上几个小时。Java的爱好...
  • xiangshimoni
  • xiangshimoni
  • 2012年06月01日 17:21
  • 843

百度之星资格赛E题:C++与Java

/*时间限制: 2000ms内存限制: 65536kB 描述 在百度之星的贴吧里面,Java的爱好者和C++的爱好者总是能为这两种语言哪个更好争论上几个小时。Java的爱好者会说他们的程序更加整洁...
  • yangxin11001
  • yangxin11001
  • 2012年05月30日 22:03
  • 332

百度之星资格赛 E题 C++ 与Java

题意:中文题,不说了 解法:这道题我没有什么好的方法,就是单个判断,话说,这道题考虑的情况好多,wa了7次才过,各种纠结。。。 ac代码: #include #include #includ...
  • wmn_wmn
  • wmn_wmn
  • 2012年05月29日 15:27
  • 1094

2016百度之星资格赛 E题

Problem E Accepts: 170 Submissions: 804 Time Limit: 2000/1000 MS (Java/Others) Memory Limi...
  • wzngzaixiaomantou
  • wzngzaixiaomantou
  • 2016年05月15日 20:57
  • 435

2016百度之星资格赛E题

Problem E Accepts: 129 Submissions: 629 Time Limit: 2000/1000 MS (Java/Others) Memory Li...
  • shuangyueliao
  • shuangyueliao
  • 2016年05月15日 15:14
  • 404

百度之星2017初赛题解(A)

T1: 简单数论,问满足(a0+a1*B+...+an*B^n)=a0+a1+...+an(mod P)的P的个数 即满足P|(B-1)a1+(B^2-1)a2+(B^3-1)a3+...,即P|...
  • yfzcsc
  • yfzcsc
  • 2017年08月13日 21:14
  • 460

【2012百度之星资格赛】E:C++ 与Java

时间限制:  2000ms  内存限制:  65536kB 描述 在百度之星的贴吧里面,Java的爱好者和C++的爱好者总是能为这两种语言哪个更好争论上几个小时。Java的爱好者...
  • tianshuai11
  • tianshuai11
  • 2012年05月30日 15:34
  • 1300

【2012百度之星/资格赛】E:C++ 与Java

时间限制: 2000ms 内存限制: 65536kB 描述 在百度之星的贴吧里面,Java的爱好者和C++的爱好者总是能为这两种语言哪个更好争论上几个小时。Java的爱好者会说他们的程...
  • ituff
  • ituff
  • 2012年05月29日 20:22
  • 1672

百度之星资格赛——J题

J:百度的新大厦 时间限制: 1000ms 内存限制: 65536kB 描述 继百度搜索框大厦之后,百度又于2012年初在深圳奠基了新的百度国际大厦,作为未来百度国际化的桥头堡。不同于百度在北京...
  • xiangshimoni
  • xiangshimoni
  • 2012年06月01日 17:27
  • 818
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:百度之星资格赛 E题 C++ 与Java
举报原因:
原因补充:

(最多只允许输入30个字)