LeetCode 1869. 哪种连续子字符串更长
给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串,返回 true ;否则,返回 false 。
例如,s = “110100010” 中,由 1 组成的最长连续子字符串的长度是 2 ,由 0 组成的最长连续子字符串的长度是 3 。
注意,如果字符串中不存在 0 ,此时认为由 0 组成的最长连续子字符串的长度是 0 。字符串中不存在 1 的情况也适用此规则。
直接遍历即可:
class Solution {
public:
bool checkZeroOnes(string s) {
int continuousZero = 0, continuousOne = 0;
int maxContinuousZero = 0, maxContinuousOne = 0;
int sz = s.size();
for (char c : s) {
if (c == '0') {
++continuousZero;
continuousOne = 0;
maxContinuousZero = max(continuousZero, maxContinuousZero);
}
if (c == '1') {
++continuousOne;
continuousZero = 0;
maxContinuousOne = max(continuousOne, maxContinuousOne);
}
}
return maxContinuousOne > maxContinuousZero;
}
};