lintcode 1193. 检测大写的正确性

给定一个单词,你需要判断其中大写字母的使用是否正确。

当下列情况之一成立时,我们将单词中大写字母的用法定义为正确:

这个单词中的所有字母都是大写字母,如“USA”。
这个单词中的所有字母都不是大写字母,如“lintcode”。
如果它有多个字母,例如“Google”,那么这个单词中的第一个字母就是大写字母。
否则,我们定义该单词没有以正确的方式使用大写字母。

样例 1:

输入: "USA"
输出: True
样例 2:

输入: "FlaG"
输出: False

思路:判断是以上三种情况的哪一种,再将每一种特殊处理即可

class Solution {
public:
    /**
     * @param word: a string
     * @return: return a boolean
     */
    bool detectCapitalUse(string &word) {
        // write your code here
        int len=word.size();
        int judge=0;
        if(len<3) return true;
        else{
            if(isupper(word[0])&&isupper(word[1])) judge=1;
            else if(isupper(word[0])&&islower(word[1]))judge=2;
            else if(islower(word[0])&&islower(word[1]))judge=3;
            else return false;
            for (int i = 3; i < len; i++) {
                /* code */
                switch(judge)
                {
                    case 1:{if(islower(word[i])) {return false;break;}}
                    case 2:{if(isupper(word[i])){return false;break;}}
                    case 3: {if(isupper(word[i])){return false;break;}}
                }
            }
            return true;
        }
    }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值