题目描述:
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
方法一:一次遍历(C++代码)
满足单词的第一个下标有以下两个条件:
该下标对应的字符不为空格;
该下标为初始下标或者该下标的前下标对应的字符为空格;
class Solution {
public:
int countSegments(string s) { //方法一:一次遍历
int count = 0;
for(int i = 0; i < s.size(); i++){
if((i == 0 || s[i - 1] == ' ') && s[i] != ' '){ //如果s[i]不为空且i为第一个元素或者i的前一个元素为空格
count++;
}
}
return count;
}
};
时间复杂度:O(n)
空间复杂度:O(1)