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