LeetCode 1784. Check if Binary String Has at Most One Segment of Ones Solution in Java, C++, Python & More | Explanation + Code

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

Description

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 string has two segments of size 1.

Example 2:

Input: s = "110"
Output: true

 

Constraints:

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

Solutions

Solution 1: Brain Teaser

Since the string s has no leading zeros, s starts with '1'.

If the string s contains the substring "01", then s is of the form "1...01...", which means s has at least two separate segments of consecutive '1's, violating the condition — return false.

If the string s does not contain the substring "01", then s can only be of the form "1..1000...", which means s has exactly one segment of consecutive '1's, satisfying the condition — return true.

Therefore, we only need to check whether the string s contains the substring "01".

The time complexity is O(n), where n is the length of the string s. The space complexity is O(1).

PythonJavaC++GoTypeScriptRustJavaScript
class Solution: def checkOnesSegment(self, s: str) -> bool: return '01' not in s(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !