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.
Approach
C++
#include <bits/stdc++.h>using namespace std;bool checkZeroOnes(string s){int n = s.size();int maxOnes = 0, maxZeros = 0;int i = 0;while (i < n){int ones = 0, zeros = 0;while (i < n && s[i] == '1'){ones++;i++;}while (i < n && s[i] == '0'){zeros++;i++;}maxOnes = max(ones, maxOnes);maxZeros = max(zeros, maxZeros);}if (maxOnes > maxZeros)return true;return false;}int main(){string s = "1101";if (checkZeroOnes(s))cout << "true\n";elsecout << "false\n";return 0;}
No comments:
Post a Comment