leetcode力扣刷题打卡
题目:1784. 检查二进制字符串字段
描述:给你一个二进制字符串 s ,该字符串 不含前导零 。
如果 s 包含 零个或一个由连续的 ‘1’ 组成的字段 ,返回 true 。否则,返回 false 。
解题思路
1、找到第一个1的下标值start和最后一个1的下标值end;
2、判断区间[start + 1, end - 1]之间有没有0;
原代码##
class Solution {
public:
bool checkOnesSegment(string s) {
int start = 0, end = 0;
for (int i = 0; i < s.size(); ++i) {
if (s[i] == '1') {
start = i;
break;
}
}
for (int i = s.size() - 1; i >= 0; --i) {
if (s[i] == '1') {
end = i;
break;
}
}
cout << start << " " << end << endl;
if (start == end) return true;
else {
for (int i = start + 1; i < end; ++i) {
if (s[i] == '0') {
return false;
}
}
return true;
}
}
};