力扣1784. 检查二进制字符串字段
题目描述:
给你一个二进制字符串 s ,该字符串 不含前导零 。
如果 s 包含 零个或一个由连续的 ‘1’ 组成的字段 ,返回 true 。否则,返回 false 。
示例1️⃣:
输入:s = "1001"
输出:false
解释:字符串中的 1 没有形成一个连续字段。
示例2️⃣:
输入:s = "110"
输出:true
提示:
1 <= s.length <= 100
s[i] 为 '0' 或 '1'
s[0] 为 '1'
解题代码:
没看懂题的我:直接莽
class Solution {//遍历字符串,判断是否有不连续的1️⃣
public:
bool checkOnesSegment(string s) {
bool jie=0;
int cnt0=count(s.begin(),s.end(),'1');
int cnt=0;
for(int i=0;i<s.size();i++){
if(s[i]=='1'){
int j=i;
while(j+1<s.size()&&s[j+1]=='1')j++;
cnt=j-i+1;
break;
}
}
return cnt==cnt0;
}
};
看懂题后的我:q(≧▽≦q)STL秒杀
class Solution {//等价于判断有无"01"
public:
bool checkOnesSegment(string s) {
return s.find("01")==string::npos;
}
};