Description
https://leetcode.com/problems/longer-contiguous-segments-of-ones-than-zeros/
Given a binary string s
, return true
if the longest contiguous segment of 1
s is strictly longer than the longest contiguous segment of 0
s in s
. Return false
otherwise.
- For example, in
s = "110100010"
the longest contiguous segment of1
s has length2
, and the longest contiguous segment of0
s has length3
.
Note that if there are no 0
s, then the longest contiguous segment of 0
s is considered to have length 0
. The same applies if there are no 1
s.
Example 1:
Input: s = "1101" Output: true Explanation: The longest contiguous segment of 1s has length 2: "1101" The longest contiguous segment of 0s has length 1: "1101" The segment of 1s is longer, so return true.
Example 2:
Input: s = "111000" Output: false Explanation: The longest contiguous segment of 1s has length 3: "111000" The longest contiguous segment of 0s has length 3: "111000" The segment of 1s is not longer, so return false.
Example 3:
Input: s = "110100010" Output: false Explanation: The longest contiguous segment of 1s has length 2: "110100010" The longest contiguous segment of 0s has length 3: "110100010" The segment of 1s is not longer, so return false.
Constraints:
1 <= s.length <= 100
s[i]
is either'0'
or'1'
.
Explanation
Compares the longest consecutive ones and zeros counts.
Python Solution
class Solution:
def checkZeroOnes(self, s: str) -> bool:
longest_ones = 0
longest_zeros = 0
ones = 0
zeros = 0
for c in s:
if c == '1':
ones += 1
longest_zeros = max(longest_zeros, zeros)
zeros = 0
else:
zeros += 1
longest_ones = max(longest_ones, ones)
ones = 0
longest_zeros = max(longest_zeros, zeros)
longest_ones = max(longest_ones, ones)
return longest_ones > longest_zeros
- Time Complexity: O(N).
- Space Complexity: O(1).