Skip to content

Commit

Permalink
Merge pull request #188 from gostool/leetcode0520
Browse files Browse the repository at this point in the history
Leetcode0520
  • Loading branch information
halfrost authored Nov 14, 2021
2 parents d9a9759 + 0ef19c8 commit 8f64507
Show file tree
Hide file tree
Showing 3 changed files with 123 additions and 0 deletions.
13 changes: 13 additions & 0 deletions leetcode/0520.Detect-Capital/520.Detect Capital.go
Original file line number Diff line number Diff line change
@@ -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
}
45 changes: 45 additions & 0 deletions leetcode/0520.Detect-Capital/520.Detect Capital_test.go
Original file line number Diff line number Diff line change
@@ -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")
}
65 changes: 65 additions & 0 deletions leetcode/0520.Detect-Capital/README.md
Original file line number Diff line number Diff line change
@@ -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
}
```

0 comments on commit 8f64507

Please sign in to comment.