题目描述:
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: “Hello, my name is John”
输出: 5
解题思路:
先去掉字符串两端的空格
当遇到空格时,判断其前一个字符是否不是空格,如果满足(不是连续空格),计数加1
由于最后一个单词后面没有空格,所以返回的计数在加1
class Solution(object):
def countSegments(self, s):
"""
:type s: str
:rtype: 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
p.s.评论区答案
1.直接用split按照空格分割
return len(s.split())
split()不加参数时默认分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
也就是说,两个单词之间有多少个空格都只会分割成两个单词
如果‘ ’用空格作为参数,只会按照一个空格进行分割,多余的空格会被作为单词