欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[高级编程技术作业]LeetCode Problem 520. Detect Capital

程序员文章站 2022-05-15 14:05:58
...

Description:

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.


解题思路:单词大小写字母使用检测,全大写、全小写或首字母大写。题目比较简单,显然可以用循环的方法分三种情况实现检测。但我们可以想到Python字符串有一些特殊的方法,可以用于这道题:upper、lower和capitalize,这三种函数可以将单词“格式化”。所以,若单词的格式本身就正确,则该单词一定与某种格式化后的单词一样。

Solution:

class Solution:
    def detectCapitalUse(self, word):
        """
        :type word: str
        :rtype: bool
        """
        if word == word.upper():
            return True
        elif word == word.lower():
            return True
        elif word == word.capitalize():
            return True
        else:
            return False

分析:

该题很好地体现了Python语言的特性与便利,实际上该题可以一行解决:

return word == word.upper() or word == word.lower() or word == word.capitalize()

做题时一时没有想到,实质上几条if语句之间是 或 的关系。


提交结果:

[高级编程技术作业]LeetCode Problem 520. Detect Capital