1784. 检查二进制字符串字段

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

猜你喜欢

转载自blog.csdn.net/qq_32355021/article/details/126351320