add: leetcode 0434 solution

This commit is contained in:
tphyhFighting
2021-10-07 19:28:26 +08:00
parent f461eadb78
commit bde069b75e
3 changed files with 118 additions and 0 deletions

View File

@ -0,0 +1,18 @@
package leetcode
func countSegments(s string) int {
segments := false
cnt := 0
for _, v := range s {
if v == ' ' && segments {
segments = false
cnt += 1
} else if v != ' ' {
segments = true
}
}
if segments {
cnt++
}
return cnt
}

View File

@ -0,0 +1,55 @@
package leetcode
import (
"fmt"
"testing"
)
type question434 struct {
para434
ans434
}
// s 是参数
type para434 struct {
s string
}
// ans 是答案
type ans434 struct {
ans int
}
func Test_Problem434(t *testing.T) {
qs := []question434{
{
para434{"Hello, my name is John"},
ans434{5},
},
{
para434{"Hello"},
ans434{1},
},
{
para434{"love live! mu'sic forever"},
ans434{4},
},
{
para434{""},
ans434{0},
},
}
fmt.Printf("------------------------Leetcode Problem 434------------------------\n")
for _, q := range qs {
_, p := q.ans434, q.para434
fmt.Printf("【input】:%v 【output】:%v\n", p, countSegments(p.s))
}
fmt.Printf("\n\n\n")
}

View File

@ -0,0 +1,45 @@
# [434. Number of Segments in a String](https://leetcode-cn.com/problems/number-of-segments-in-a-string/)
## 题目
You are given a string s, return the number of segments in the string.
A segment is defined to be a contiguous sequence of non-space characters.
**Example 1:**
Input: s = "Hello, my name is John"
Output: 5
Explanation: The five segments are ["Hello,", "my", "name", "is", "John"]
**Example 2:**
Input: s = "Hello"
Output: 1
**Example 3:**
Input: s = "love live! mu'sic forever"
Output: 4
**Example 4:**
Input: s = ""
Output: 0
**Constraints**
- 0 <= s.length <= 300
- s consists of lower-case and upper-case English letters, digits or one of the following characters "!@#$%^&*()_+-=',.:".
- The only space character in s is ' '.
## 题目大意
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
## 解题思路
- 以空格为分割计算元素个数