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;
    }
};
posted @   epiphanyy  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示