原题:
434. Number of Segments in a String
解题:
刚看到题目时,觉得可以通过统计空格个数,但想想有可能会有多个空格的情况
思路:
一:遍历字符,if条件碰到非空格时,计数加1,然后while循环跳过非空格字符,一直到最后
二:设置flag初始为0,当碰到非空格时,计数加1,且flag置1,当flag为1且碰到空格时,flag再重置为0
思路一是自己想的,思路二更巧妙,是论坛里摘抄的
AC代码:
思路一:
class Solution {
public:
int countSegments(string s)
{
int len = s.length();
int i = 0;
int count = 0;
for(; i < len; i++)
{
if(s[i]!=' ')
{
count++;
while(s[i]!=' '&&i<len)
{
i++;
}
i -= 1; //回退一个位置,因为for循环会累加
} }
return count;
}
};
思路二:
class Solution {
public:
int countSegments(string s) {
int count=0;
int flag = 0;
for (int i=0;i<s.size();i++) {
if (flag ==0 && s[i]!=' ') {
count++;
flag = 1;
}
if (flag ==1 && s[i]==' ') {
flag = 0;
} }
return count;
}
};