leetcode_434 字符串中的单词数

78 阅读1分钟

要求

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。

核心代码

class Solution:
    def countSegments(self, s: str) -> int:
        return len(s.split())

另一解法

class Solution:
    def countSegments(self, s: str) -> int:
        s = s.strip()
        if len(s) == 0:
            return 0
        count = 0
        for i in s:
            if i != " ":
                flag = 1
            if i == " " and flag == 1:
                count += 1
                flag = 0
        return count + 1

image.png

解题思路:第一种解法:使用python的字符串方法:需要注意的是:split()不加参数时默认分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。也就是说,两个单词之间有多少个空格都只会分割成两个单词,如果‘ ’用空格作为参数,只会按照一个空格进行分割,多余的空格会被作为单词。第二种解法:先去掉字符串两端的空格,当遇到空格时,判断其前一个字符是否不是空格,如果满足(不是连续空格),计数加1,由于最后一个单词后面没有空格,所以返回的计数在加1,实际上我们的单词数 = 空格数 + 1,我们就统计空格的个数即可。