434. Number of Segments in a String

原题:

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;
    }
};

  

原文地址:https://www.cnblogs.com/xqn2017/p/8493226.html