• 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代码:

    #include<iostream>
    #include<string.h>
    using namespace std;
    
    char a[10002];
    int main(){
        while (gets(a)){
            int len = strlen(a);
            int i, cnt = 0;
            if (a[0] == 'c' && a[1] == 'l'){
                for (i = 7; i < len; i++){
                    if (a[i] == ' '){
                        cnt = 1;
                    }
                    else if (cnt == 1 && a[i] != ' '){
                        printf("%c", a[i] - 32);
                        cnt = 0;
                    }
                    else{
                        printf("%c", a[i]);
                    }
                }
                cout << endl;
            }
            else if (a[0] == 'c'){
                cnt = 0;
                for (i = 10; i < len; i++){
                    if (cnt == 1 && a[i] == ' ' && a[i + 1] <= 'z' && a[i + 1] >= 'a'){
                        cout << "_";
                    }
                    else if (a[i] >= 'a' && a[i] <= 'z'){
                        cnt = 1;
                        printf("%c", a[i] - 32);
                    }
                }
                cout << endl;
            }
            else if (a[0] == 'm'){
                cnt = 0;
                for (i = 7; i < len; i++){
                    if (a[i] == ' '){
                    }
                    else if (cnt == 0 && a[i] <= 'z' && a[i] >= 'a'){
                        cnt = 1;
                        printf("%c", a[i]);
                    }
                    else if (cnt == 1 && a[i - 1] == ' '){
                        printf("%c", a[i] - 32);
                    }
                    else
                        printf("%c", a[i]);
                }
                cout << "()" << endl;
            }
            else{
                cnt = 0;
                for (i = 10; i < len; i++){
                    if (a[i] == ' '){
                    }
                    else if (cnt == 0 && a[i] <= 'z' && a[i] >= 'a'){
                        cnt = 1;
                        printf("%c", a[i]);
                    }
                    else if (cnt == 1 && a[i - 1] == ' '){
                        printf("%c", a[i] - 32);
                    }
                    else
                        printf("%c", a[i]);
                }
                cout << endl;
            }
        }
        return 0;
    }
    
    
  • 相关阅读:
    面向对象的本质是算法的上下文封装,是同一类属的行为接口的一致性
    结构化方法和面向对象方法的比较
    需求文档和软件都是服务的集合
    注意 Laravel 清除缓存 php artisan cache:clear 的一个坑
    面向对象复习笔记(一)
    详解如何在Laravel中增加自定义全局函数
    Laravel 引入自定义类库或第三方类库
    PHP怎么调用其他类的方法
    Laravel如何引用第三方(自定义)库
    laravel框架手机发送验证码
  • 原文地址:https://www.cnblogs.com/yyzwz/p/13393287.html
Copyright © 2020-2023  润新知