LeetCode-in-Java

1784. Check if Binary String Has at Most One Segment of Ones

Easy

Given a binary string s without leading zeros, return true if s contains at most one contiguous segment of ones. Otherwise, return false.

Example 1:

Input: s = “1001”

Output: false

Explanation: The ones do not form a contiguous segment.

Example 2:

Input: s = “110”

Output: true

Constraints:

Solution

public class Solution {
    public boolean checkOnesSegment(String s) {
        boolean metOne = false;
        int i = 0;
        while (i < s.length()) {
            if (s.charAt(i) == '1' && metOne) {
                return false;
            }
            if (s.charAt(i) == '1') {
                metOne = true;
                while (i < s.length() && s.charAt(i) == '1') {
                    i++;
                }
            }
            i++;
        }
        return true;
    }
}