Merge pull request #188 from gostool/leetcode0520

Leetcode0520
This commit is contained in:
halfrost
2021-11-13 21:07:38 -08:00
committed by GitHub
3 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,13 @@
package leetcode
import "strings"
func detectCapitalUse(word string) bool {
wLower := strings.ToLower(word)
wUpper := strings.ToUpper(word)
wCaptial := strings.ToUpper(string(word[0])) + strings.ToLower(string(word[1:]))
if wCaptial == word || wLower == word || wUpper == word {
return true
}
return false
}

View File

@ -0,0 +1,45 @@
package leetcode
import (
"fmt"
"testing"
)
type question520 struct {
para520
ans520
}
// para 是参数
type para520 struct {
word string
}
// ans 是答案
type ans520 struct {
ans bool
}
func Test_Problem520(t *testing.T) {
qs := []question520{
{
para520{"USA"},
ans520{true},
},
{
para520{"FlaG"},
ans520{false},
},
}
fmt.Printf("------------------------Leetcode Problem 520------------------------\n")
for _, q := range qs {
_, p := q.ans520, q.para520
fmt.Printf("【input】:%v 【output】:%v\n", p, detectCapitalUse(p.word))
}
fmt.Printf("\n\n\n")
}

View File

@ -0,0 +1,65 @@
# [520. Detect Capital](https://leetcode-cn.com/problems/detect-capital/)
## 题目
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".
Given a string word, return true if the usage of capitals in it is right.
**Example 1:**
```
Input: word = "USA"
Output: true
```
**Example 2:**
```
Input: word = "FlaG"
Output: false
```
**Constraints:**
- 1 <= word.length <= 100
- word consists of lowercase and uppercase English letters.
## 题目大意
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如 "USA" 。
单词中所有字母都不是大写,比如 "leetcode" 。
如果单词不只含有一个字母,只有首字母大写,比如"Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
## 解题思路
- 把word分别转换为全部小写wLower全部大写wUpper首字母大写的字符串wCaptial
- 判断word是否等于wLower,wUpper,wCaptial中的一个如果是返回true否则返回false
## 代码
```go
package leetcode
import "strings"
func detectCapitalUse(word string) bool {
wLower := strings.ToLower(word)
wUpper := strings.ToUpper(word)
wCaptial := strings.ToUpper(string(word[0])) + strings.ToLower(string(word[1:]))
if wCaptial == word || wLower == word || wUpper == word {
return true
}
return false
}
```