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

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:

• `1 <= s.length <= 100`
• `s[i]`​​​​ is either `'0'` or `'1'`.
• `s[0]` is `'1'`.

1784. Check if Binary String Has at Most One Segment of Ones
``````struct Solution;

impl Solution {
fn check_ones_segment(s: String) -> bool {
let mut one = false;
let mut count = 0;
for c in s.chars() {
if c == '1' {
one = true;
} else {
if one {
count += 1;
}
one = false;
}
}
if one {
count += 1;
}
count <= 1
}
}

#[test]
fn test() {
let s = "1001".to_string();
let res = false;
assert_eq!(Solution::check_ones_segment(s), res);
let s = "110".to_string();
let res = true;
assert_eq!(Solution::check_ones_segment(s), res);
}
``````