题目
统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: "Hello, my name is John" 输出: 5 解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
解题
方法一
因为英文中,可能会出现一些符号,如 逗号 或者 点 等。但是在逗号后面会加一个小空格。因此不必纠结其他英文符号,只需要利用 当前字符是空格,下一个不是空格,就可以判断是一个单词。(当然开头需要额外判断)
另外可能会出现 's
等这字符出现,如果单纯利用字符来判断一个单词就会比较麻烦
比如"love live! mu'sic forever"
,所以利用空格比较稳妥
class Solution { public: int countSegments(string s) { int count=0; for(int i=0;i<s.size();i++){ // 第一个字符不是空格的情况 if(i==0&&s[i]!=' '){ count++; } // 只要s[i]是空格,s[i+1]不是空格,count就加1 if(i+1<s.size()&&s[i]==' '&&s[i+1]!=' '){ count++; } } return count; } };