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.

解法1:

复制代码
class Solution(object):
    def detectCapitalUse(self, word):
        """
        :type word: str
        :rtype: bool
        """
        """
        USA=True
        CN=True
        C=False?
        U=False?
        ""=?
        usa=True
        Usa=True
        uSa=False
        """
        # get first letter:
        # if first letter is Uppaer case: check all the following letter is Lower case or upper case
        # if first letter is lower case: check all the following letter is lower case
        # otherwise, False
        if word[0].islower(): return all(c.islower() for c in word[1:])
        else: return all(c.isupper() for c in word[1:]) or all(c.islower() for c in word[1:])        
复制代码

换一种思维:大写字母个数==0或者==1个(仅为首字母)或者字符串长度!

复制代码
class Solution(object):
    def detectCapitalUse(self, word):
        """
        :type word: str
        :rtype: bool        
        """
        upper_cnt = 0
        for c in word:
            if c.isupper(): upper_cnt += 1
        return upper_cnt == 0 or (upper_cnt == 1 and word[0].isupper()) or upper_cnt == len(word) 
        
复制代码

 


 

posted @   bonelee  阅读(162)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2017-03-14 cassandra cpp driver中bind list——用cass_statement_bind_collection函数
2017-03-14 parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的column使用列存储格式,这样获取某一row数据时候不需要跨机器获取
2017-03-14 WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中——浏览器里运行其他语言的程序?
点击右上角即可分享
微信分享提示