jotting

ⓁⒸ ‧‧‧ 520. Detect Capita

520. Detect Capita

❀ Origin

Problem

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:

  • All letters in this word are capitals, like “USA”.
  • All letters in this word are not capitals, like “leetcode”.
  • Only the first letter in this word is capital, like “Google”.

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

Note

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

Example 1

1
2
Input: "USA"
Output: True

Example 2

1
2
Input: "FlaG"
Output: False

❀ 翻譯

問題

給定一個詞,
你需要去判斷裡面大寫字母的使用是否正確。

  • 這個單詞中的所有字母都是大寫字母,如 “USA” 。
  • 這個單詞中的所有字母都不是大寫字母,例如 “leetcode” 。
  • 只有這個詞的第一個字母是大寫字母,比如 “Google”。

否則,我們定義該單詞沒有以正確的方式使用大寫字母。

注意

input 將會是個由大寫和小寫的拉丁字母組成的非空字詞。


❀ Solution

Golang

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
func detectCapitalUse(word string) (answer bool) {

// 根據題目要求,
// 先轉成符合題意的字串形式
// 之後用三者去做比對,與一相同則為答案。
strLower := strings.ToLower(word)
strUpper := strings.ToUpper(word)
strNormal := strings.ToUpper(word[:1]) + strings.ToLower(word[1:])

// 配合 Go 精神,使用 Switch 語句
switch word {
case strLower, strUpper, strNormal:
answer = true
default:
answer = false
}

return answer
// return strLower == word || strUpper == word || strNormal == word
}