每日一题 2609. 最长平衡子字符串(简单)

news2024/10/5 14:25:37

在这里插入图片描述
乍一看,简单题,思路也很简单,但代码有点不好写

  1. 思路无非就是从找到的第一个 ‘0’ 开始,一直找 ‘0’ 知道遇到一个 ‘1’,此时变换策略,一直找 ‘1’,知道遇到一个 ‘0’,就这样一直找
  2. 代码不好写,情况挺多
  3. 首先 0 比 1 少,如字符串 ”00011111“,那么在遇到下一个 ‘0’ 之前,我们就要记下这个平衡子串了,平衡子串的长度是 2 序列的两倍
  4. 0 必 1 多,如字符串 ”00000111“,那么平衡子串的长度是 1 序列的两倍
  5. 在这里我用 cnt 计数,遇到 0 就 +1,遇到 1 就 -1,那么就需要另一个参数来记录转折时的 cnt 值,不然无法计算平衡子串长度
class Solution:
    def findTheLongestBalancedSubstring(self, s: str) -> int:
        ans = 0
        cnt = 0
        k = 0
        t = '0'
        for i in s:
            if i == '0':
                if t == '0':
                    cnt += 1
                else:
                    ans = max(ans, (k-cnt)*2)
                    cnt = 1
                    t = '0'
            else:
                if t == '0':
                    k = cnt
                    t = '1'
                cnt -= 1
                if cnt < 0:
                    cnt = 0
                if cnt == 0:
                    ans = max(ans, k*2)
        if t == '1':
            ans = max(ans, (k-cnt)*2)
        return ans

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

掌握 Figma 的自动布局,轻松设计 - 简化指南!

Figma作为一种基于浏览器操作的设计工具&#xff0c;改变了传统的设计软件工作模式&#xff0c;为我们在线合作设计奠定了基础。自推出以来&#xff0c;Figma的创新一直受到国内外众多UI设计师的关注&#xff0c;包括在推动设计团队开展高效设计工作方面&#xff0c;Figma推出了…

计算机毕业设计基于springboot+java+vue的健身房课程预约信息网站

运行环境 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven 项目介绍 本健身网…

win10安装.net3.5

运行 winver 对应Windows的版本下载相应的iso&#xff0c;可以在MSDN, 我告诉你 - 做一个安静的工具站 (itellyou.cn)下载&#xff0c;最新的去微软官方下载下载 Windows 10 (microsoft.com) 下载这个工具下载 将iso中的文件夹sxs里的内容拷贝到C:/windows/sxs里 管理员运行po…

超简单超实用的网页视频下载方法

想必大家经常需要下载网页视频&#xff0c;以便自己离线观看&#xff0c;这篇文章就来说一种超简单超实用的快捷方法&#xff0c;无需下载软件&#xff0c;无需使用插件&#xff0c;三四步轻松搞定&#xff01; 目录 Google浏览器网页视频下载 Microsoft Edge浏览器网页视频…

前端项目导入vue和element

1.安装nodejs 下载链接https://cdn.npmmirror.com/binaries/node/v18.18.0/node-v18.18.0-x64.msi 进入cmd 命令行模式 管理员身份运行 输入 &#xff08;node -v&#xff09;能看到版本号 npm config set prefix "C:\Program Files\nodejs" 默认路径 npm config…

网页【CSS】滚动条

前言 优化后的滚动条会提亮我们的网站页面。 例如&#xff1a;CSS-TRICKS这个网站如果采用的是浏览器默认的滚动条&#xff0c;不进行优化&#xff0c;页面会显得很不搭。 所以该网站的滚动条样式优化如下&#xff1a; html::-webkit-scrollbar {width: 30px;height: 30px; …

基于Springboot的时装购物系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的时装购物系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

notepad++搜索结果窗口不见了

1、使用notepad打开一个文件文件 2、ctrlf&#xff0c;打开搜索窗口&#xff0c;随便搜索一个内容 3、按F7,然后AltF7 切换焦点到Find result. 会有一个小窗口出现&#xff0c;内容是&#xff1a;还原&#xff0c;移动&#xff0c;大小等 4&#xff0c;点移动&#xff0c;使…

打造高效的客服体系,就在于这个“专属链接”

想要追踪特定数据&#xff0c;但是得在数据库中大海捞针&#xff1f; 想要知道某个推广的效果&#xff0c;但是无法追踪&#xff1f; 想要获得个性化的报告&#xff0c;但是数据不够精准&#xff1f; 面对这些情况&#xff0c;只需要靠一条“专属链接”就能一一击破&#xff…

WebGL的技术难点分析

WebGL是一项强大的技术&#xff0c;但在开发过程中可能会遇到一些挑战和技术难点。以下是一些与WebGL相关的技术难点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.3D数学和图形编程&#xff1a;理…

数据可视化PCA与t-SNE

PCA&#xff08;主成分分析&#xff09;和t-SNE&#xff08;t分布随机近邻嵌入&#xff09;都是降维技术&#xff0c;可以用于数据的可视化和特征提取。 降维&#xff1a;把数据或特征的维数降低&#xff0c;其基本作用包括&#xff1a; 提高样本密度&#xff0c;以及使基于欧…

将idea默认折叠的注释打开

idea默认的代码注释是折叠的&#xff0c;不方便查看 下面是改成默认打开的步骤 1、打开settings 2、找到Code Folding,将 Annotations前面的 对钩去掉&#xff0c;保存即可

【C++初阶(五)类和对象(上)】

本专栏内容为&#xff1a;C学习专栏&#xff0c;分为初阶和进阶两部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握C。 &#x1f493;博主csdn个人主页&#xff1a;小小unicorn ⏩专栏分类&#xff1a;C &#x1f69a;代码仓库&#xff1a;小小unicorn的代码仓库&…

Flink 基础 -- 尝试Flink

官网 文档 v1.18.0 下载 数据流上的状态计算(Stateful Computations over Data Streams) Apache Flink是一个框架和分布式处理引擎&#xff0c;用于无界和有界数据流的有状态计算。Flink被设计成可以在所有常见的集群环境中运行&#xff0c;以内存中的速度和任何规模执行计…

实验(一):运算器实验

一、实验内容与目的 实验要求&#xff1a; 利用 CP226 实验仪的 K16..K23开关做为DBUS数据&#xff0c;其它开关做为控制信号&#xff0c;将数据写累加器A和工作寄存器W&#xff0c;并用开关控制ALU的运算方式&#xff0c;实现运算器的功能&#xff0c;将结果送入OUT寄存器。 实…

软件工程第十周

测试过程 单元测试 注意出错处理&#xff01;单元测试的数据处理部分请见Junit 单元测试之错误和异常处理-CSDN博客 单元测试准则 白盒&#xff1a;对系统结构非常清楚&#xff01;就像大题注重过程。 单元测试的测试环境 一定要保证整个环境是完整的&#xff0c;尽管可能没…

读写锁ReentrantReadWriteLock

读写锁ReentrantReadWriteLock是JDK1.5提供的一个工具锁&#xff0c;适用于读多写少的场景&#xff0c;将读写分离&#xff0c;从而提高并发性。读写锁允许的情况&#xff1a;一个资源可以被多个读操作访问&#xff0c;或者被一个写操作访问&#xff0c;但两者不能同时进行。 R…

IP地址会暴露我们的隐私吗?

IP地址在某种程度上可能会暴露个人或组织的隐私。以下是一些关于IP地址可能影响隐私的情况&#xff1a; 地理位置信息&#xff1a; IP地址的一部分信息是与地理位置相关的&#xff0c;因此可以用于确定用户或组织的大致地理位置。这可能泄露用户的身份或活动的地理背景。 互联…

Doris:Binlog Load导入数据

Binlog Load提供了一种使Doris增量同步用户在Mysql数据库的对数据更新操作的CDC(Change Data Capture)功能。Binlog Load需要依赖canal作为中间媒介&#xff0c;让canal伪造成一个从节点去获取Mysql主节点上的Binlog并解析&#xff0c;再由Doris去获取Canal上解析好的数据。 1…