diff --git a/leetcode/0434.Number-of-Segments-in-a-String/434.Number of Segments in a String.go b/leetcode/0434.Number-of-Segments-in-a-String/434.Number of Segments in a String.go new file mode 100644 index 00000000..626caebe --- /dev/null +++ b/leetcode/0434.Number-of-Segments-in-a-String/434.Number of Segments in a String.go @@ -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 +} diff --git a/leetcode/0434.Number-of-Segments-in-a-String/434.Number of Segments in a String_test.go b/leetcode/0434.Number-of-Segments-in-a-String/434.Number of Segments in a String_test.go new file mode 100644 index 00000000..7c634601 --- /dev/null +++ b/leetcode/0434.Number-of-Segments-in-a-String/434.Number of Segments in a String_test.go @@ -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") +} diff --git a/leetcode/0434.Number-of-Segments-in-a-String/README.md b/leetcode/0434.Number-of-Segments-in-a-String/README.md new file mode 100644 index 00000000..976e0cfc --- /dev/null +++ b/leetcode/0434.Number-of-Segments-in-a-String/README.md @@ -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 ' '. + +## 题目大意 + +统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 + +请注意,你可以假定字符串里不包括任何不可打印的字符。 + +## 解题思路 + +- 以空格为分割计算元素个数