原题:
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; } };