当前位置: 首页 > article >正文

【LeetCode】1869. 哪种连续子字符串更长

1869. 哪种连续子字符串更长

难度:简单

题目

给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于0 组成的 最长 连续子字符串,返回 true ;否则,返回 false

  • 例如,s = "110100010" 中,由 1 组成的最长连续子字符串的长度是 2 ,由 0 组成的最长连续子字符串的长度是 3

注意,如果字符串中不存在 0 ,此时认为由 0 组成的最长连续子字符串的长度是 0 。字符串中不存在 1 的情况也适用此规则。

示例 1:

输入:s = "1101"
输出:true
解释:
由 1 组成的最长连续子字符串的长度是 2:"1101"
由 0 组成的最长连续子字符串的长度是 1:"1101"
由 1 组成的子字符串更长,故返回 true 。

示例 2:

输入:s = "111000"
输出:false
解释:
由 1 组成的最长连续子字符串的长度是 3:"111000"
由 0 组成的最长连续子字符串的长度是 3:"111000"
由 1 组成的子字符串不比由 0 组成的子字符串长,故返回 false 。

示例 3:

输入:s = "110100010"
输出:false
解释:
由 1 组成的最长连续子字符串的长度是 2:"110100010"
由 0 组成的最长连续子字符串的长度是 3:"110100010"
由 1 组成的子字符串不比由 0 组成的子字符串长,故返回 false 。

提示:

  • 1 <= s.length <= 100
  • s[i] 不是 '0' 就是 '1'

个人题解

思路:

遍历 + 记录

class Solution {
    public boolean checkZeroOnes(String s) {
        int maxOneL = 0;
        int maxZeroL = 0;
        int count = 0;
        boolean oneFlag = false;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '0' && oneFlag || s.charAt(i) == '1' && !oneFlag) {
                maxOneL = oneFlag ? Math.max(maxOneL, count) : maxOneL;
                maxZeroL = oneFlag ? maxZeroL : Math.max(maxZeroL, count);
                count = 1;
                oneFlag = !oneFlag;
            } else {
                count++;   
            }
        }
        maxOneL = oneFlag ? Math.max(maxOneL, count) : maxOneL;
        maxZeroL = oneFlag ? maxZeroL : Math.max(maxZeroL, count);
        return maxOneL > maxZeroL;
    }
}

可参考题解

class Solution {
    public boolean checkZeroOnes(String s) {
        int n = s.length();
        int i = 0, oneMax = 0, zeroMax = 0;
        while(i < n) {
            int oneLength = 0, zeroLength = 0;
            while(i < n && s.charAt(i) == '1') {
                oneLength++;
                i++;
            }
            oneMax = Math.max(oneMax, oneLength);
            while(i < n && s.charAt(i) == '0') {
                zeroLength++;
                i++;
            }
            zeroMax = Math.max(zeroMax, zeroLength);
        }
        return oneMax > zeroMax;
    }
}

http://www.kler.cn/a/133016.html

相关文章:

  • 【Golang】——Gin 框架中的路由与请求处理
  • Kafka新节点加入集群操作指南
  • 【实验11】卷积神经网络(2)-基于LeNet实现手写体数字识别
  • 【PYTORCH】使用MTCNN和InceptionResnetV1简单进行人脸检测和相似度匹配
  • GEE下载ERA5-Land气象数据(1950-至今,降水、温度)
  • 【Linux:IO多路复用(select、poll函数)
  • 【Linux】基本指令
  • C++学习笔记:类与对象1
  • 泛微E-Cology CheckServer.jspSQL注入漏洞(QVD-2023-9849) 复现
  • Java中如何通过路径表达式找值:XPath和JsonPath以及SpEL详解及对比
  • 10. Spring源码篇之BeanPostProcessor
  • C/C++字符判断 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 计算机网络———ipv6简解
  • 【观察】华为:数智世界“一触即达”,应对数智化转型“千变万化”
  • 在Linux系统上检测GPU显存和使用情况
  • 【AI视野·今日Robot 机器人论文速览 第六十二期】Wed, 25 Oct 2023
  • 定时任务 Spring Task
  • RAAGR2-Net:一种使用多个空间帧的并行处理的脑肿瘤分割网络
  • mfc140u.dll丢失的解决方法,以及针对每个解决mfc140u.dll丢失办法的优缺点
  • 苍穹外卖--实现照片上传
  • npm私有云
  • 在Uni-app中实现计时器效果
  • Android Studio 写一个Java调用c++ 的demo
  • springMvc中的拦截器【巩固】
  • 爱上C语言:操作符详解(下)
  • 08-黑马点评项目发布笔记和查看笔记功能的实现