LeetCode 520 Detect Capital

Given a word, you need to judge whether the usage of capitals in it is right or not.

We define the usage of capitals in a word to be right when one of the following cases holds:

  1. All letters in this word are capitals, like "USA".
  2. All letters in this word are not capitals, like "leetcode".
  3. Only the first letter in this word is capital if it has more than one letter, like "Google".

Otherwise, we define that this word doesn't use capitals in a right way.

 

Example 1:

Input: "USA"
Output: True

 

Example 2:

Input: "FlaG"
Output: False

 

Note: The input will be a non-empty word consisting of uppercase and lowercase latin letters.

这里写这道题不是因为这题有多难,而是这题的思路值得记录,事实上,在平时的开发过程中,具体的需求有时候并不一定需要用到复杂的算法或者过度思考,抓住问题的本质才是关键,并且有时候根据需求我们可以‘耿直’些。这道题实际上可以归纳为3种情况:

    1)所有字母都是大写

    2)左右字母都是小写

    3)第一个字母大写其他小写

当且仅当满足这3种情况的时候返回true,否则返回false。因此我们只需要遍历string然后找出所有字母的大小写情况即可。

    public boolean detectCapitalUse(String word) {
        int count = 0;
        char [] chars = word.toCharArray();
        for (char c : chars) {
            if (Character.isUpperCase(c)) count++;
        }
        return ((count == 0 || count == chars.length) || (count == 1 && Character.isUpperCase(word.charAt(0))));
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值