ACM刷题之路(七)字符串处理 记元培ACM院赛

简介: ACM刷题之路(七)字符串处理 记元培ACM院赛

2015年元培院赛 A 安卓命名规则

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte

总提交:320            测试通过:66

描述

最近在用安卓做毕业设计,用到的类名、方法名、变量名、常量名不下一百个,开始的时候哪里会在意这些命名的规则,拼音什么的都出现了,但随着名称的增加,都分不清哪些是方法名,哪些是变量名,所以规范的命名对代码的可读性起到了至关重要的作用。下面介绍一下命名规范:

1、类(classes):采用大驼峰命名,每个单词的首字母均应大写。如MainActivity

2、方法(methods):采用小驼峰命名法,除了第一个单词首字母为小写,其他单词的首字母均为大写。如setOnClickListener();

3、变量(variables)采用小驼峰命名法。如lastCustomer;

4、常量(constants)全部大写,采用下划线命名法。如FLAG_START;

输入

输入多组测试数据,每组测试数据包含一行,每行有若干个单词组成,单词之间用空格隔开,单词字母都为小写字母,每组至少存在两个单词(一行的字符串总数不超过100个,每个字符串中的字符总数不多于100个),其中第一个单词表示需要命名的类型,而后面的单词则需要根据类型进行合并命名。

输出

每组测试数据后面输出一行,具体输出格式见输出样例。

样例输入

classes main activity

methods set on click listener

variables last customer

constants flag start

样例输出

MainActivity

setOnClickListener()

lastCustomer

FLAG_START

此题为元培2015院赛A题:

一共有四种要求,根据每种要求暴力就可以。

要注意最前面、最后面、单词中间可能有多个空格,且数组为100*100.

AC代码:

1. #include<iostream>
2. #include<string.h>
3. using namespace std;
4. 
5. char a[10002];
6. int main(){
7. while (gets(a)){
8. int len = strlen(a);
9. int i, cnt = 0;
10. if (a[0] == 'c' && a[1] == 'l'){
11. for (i = 7; i < len; i++){
12. if (a[i] == ' '){
13.                     cnt = 1;
14.                 }
15. else if (cnt == 1 && a[i] != ' '){
16. printf("%c", a[i] - 32);
17.                     cnt = 0;
18.                 }
19. else{
20. printf("%c", a[i]);
21.                 }
22.             }
23.             cout << endl;
24.         }
25. else if (a[0] == 'c'){
26.             cnt = 0;
27. for (i = 10; i < len; i++){
28. if (cnt == 1 && a[i] == ' ' && a[i + 1] <= 'z' && a[i + 1] >= 'a'){
29.                     cout << "_";
30.                 }
31. else if (a[i] >= 'a' && a[i] <= 'z'){
32.                     cnt = 1;
33. printf("%c", a[i] - 32);
34.                 }
35.             }
36.             cout << endl;
37.         }
38. else if (a[0] == 'm'){
39.             cnt = 0;
40. for (i = 7; i < len; i++){
41. if (a[i] == ' '){
42.                 }
43. else if (cnt == 0 && a[i] <= 'z' && a[i] >= 'a'){
44.                     cnt = 1;
45. printf("%c", a[i]);
46.                 }
47. else if (cnt == 1 && a[i - 1] == ' '){
48. printf("%c", a[i] - 32);
49.                 }
50. else
51. printf("%c", a[i]);
52.             }
53.             cout << "()" << endl;
54.         }
55. else{
56.             cnt = 0;
57. for (i = 10; i < len; i++){
58. if (a[i] == ' '){
59.                 }
60. else if (cnt == 0 && a[i] <= 'z' && a[i] >= 'a'){
61.                     cnt = 1;
62. printf("%c", a[i]);
63.                 }
64. else if (cnt == 1 && a[i - 1] == ' '){
65. printf("%c", a[i] - 32);
66.                 }
67. else
68. printf("%c", a[i]);
69.             }
70.             cout << endl;
71.         }
72.     }
73. return 0;
74. }
75.

 


相关文章
|
算法 C++ 容器
ACM竞赛常用STL(一)2
ACM/ICPC 竞赛之STL--iterator 简介 iterator(迭代器)是用于访问容器中元素的指示器,从这个意义上说,iterator(迭代器)相当于数据结构中所说的“遍历指针”,也可以把iterator(迭代器)看作是一种泛化的指针。STL 中关于iterator(迭代器)的实现是相当复杂的,这里我们暂时不去详细讨论关于iterator(迭代器)的实现和使用,而只对iterator(迭代器)做一点简单的介绍。
59 0
|
5月前
|
机器学习/深度学习 C++
程序与技术分享:2017ACM
程序与技术分享:2017ACM
26 0
|
Java C语言 C++
ACM刷题之路(二)谈谈我对ACM的理解
ACM刷题之路(二)谈谈我对ACM的理解
118 0
ACM刷题之路(十六)Acm程序设计竞赛自制模板(一)
ACM刷题之路(十六)Acm程序设计竞赛自制模板
|
存储 对象存储 C++
ACM竞赛常用STL(一)1
s.resize(n, val)改变序列的长度,超出的元素将会被删除,如果序列需要扩展(原空间小于n),将用val 填满扩展出的空间。
77 0
|
算法
ACM刷题之路(十六)Acm程序设计竞赛自制模板(二)
ACM刷题之路(十六)Acm程序设计竞赛自制模板
|
自然语言处理 算法 Shell
ACM算法竞赛及OJ题面常用英文单词整理
ACM算法竞赛及OJ题面常用英文单词整理
511 0
|
机器学习/深度学习 人工智能 Java
新手入门 acm 输入输出练习
A + B Problem(1000) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 355051    Accept...
18183 2
|
存储 算法 C语言
ACM讲课之字符串
本次讲课讲全面介绍字符串以及如何使用字符串解决具体问题。 一、什么是字符串 1.如何存储字符串 平时我们使用的变量有很多,int代表整型变量,double代表浮点型变量,char代表字符型变量,那么对于一个字符串例如“Hello World!”应该如何存储并操作呢。
1183 0
|
存储 C语言
ACM团队招新赛题解
标程代码全部为C语言编写。代码中的#if LOCAL_ 至#endif为本地一些调试内容,可以忽略。 Xenny的A+B(1)【容易】【签到】 签到题,做不出的话可能你有点不太适合ACM了。       Xenny的A+B(2)【容易】【签到】 也没什么好说的,用一个循环控制输入的次数就行了     Xenny的A+B(3)【困难】【模拟】 这是本次比赛最难的题目,用意在于赛后你们看见此题题解可以开拓一下思维方式,不要局限于中学的思维,要掌握计算机。
2431 0