思路分析
若所给的二进制串中包含0个或者1个连续的1字串,则返回true,否则返回false。
设置一个标记flag,当遇到1时将其置为true。
当标记为true时,遇到0则说明此段连续的1结束,更改标记,并将计数变量cnt加1。
最后要判断下flag是否为true,避免到结尾时仍然没有遇到0导致cnt数量没有改变的情况。
代码
class Solution {
public:
bool checkOnesSegment(string s) {
int cnt = 0;
int flag = false;
for(int i=0;i<s.size();i++){
if(flag&&s[i]=='0'){
cnt++,flag = false;
continue;
}
if(!flag&&s[i]=='1')
flag = true;
}
if(flag)
cnt ++;
if(cnt == 0 || cnt == 1)
return true;
return false;
}
};