码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Leetcode】【每日一题】【简单】2609. 最长平衡子字符串



    力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。icon-default.png?t=N7T8https://leetcode.cn/problems/find-the-longest-balanced-substring-of-a-binary-string/description/?envType=daily-question&envId=2023-11-08

    给你一个仅由 0 和 1 组成的二进制字符串 s 。  

    如果子字符串中 所有的 0 都在 1 之前 且其中 0 的数量等于 1 的数量,则认为 s 的这个子字符串是平衡子字符串。请注意,空子字符串也视作平衡子字符串。 

    返回  s 中最长的平衡子字符串长度。

    子字符串是字符串中的一个连续字符序列。

    示例 1:

    输入:s = "01000111"
    输出:6
    解释:最长的平衡子字符串是 "000111" ,长度为 6 。
    

    示例 2:

    输入:s = "00111"
    输出:4
    解释:最长的平衡子字符串是 "0011" ,长度为  4 。
    

    示例 3:

    输入:s = "111"
    输出:0
    解释:除了空子字符串之外不存在其他平衡子字符串,所以答案为 0 。
    

    提示:

    • 1 <= s.length <= 50
    • '0' <= s[i] <= '1'

    自己的思路

    使用ArrayLIst存储第i位为0、第i+1位为1的位置队列。使用for循环遍历ArrayList,同时使用while循环判断第i-1为是否为0、第i+2为是否为1...,如果符合题意000...01...1,则count+2,因为这里把0和1绑定为一组,所以每满足一次,就加2。如果不满足,则需要把count归零,方便下次的计算。最后把所有的count放入ArrayList,返回它们的最大值

    代码

    1. class Solution {
    2. public int findTheLongestBalancedSubstring(String s) {
    3. char[] ch = s.toCharArray();
    4. int len = ch.length;
    5. ArrayList arrayList = new ArrayList<>();
    6. for (int i = 0; i < len - 1; i++) {
    7. if (ch[i] == '0' && ch[i + 1] == '1') {
    8. arrayList.add(i);
    9. }
    10. }
    11. if (arrayList.size() == 0)
    12. return 0;
    13. System.out.println(arrayList);
    14. ArrayList result = new ArrayList<>();
    15. for (int i = 0; i < arrayList.size(); i++) {
    16. int tmp = arrayList.get(i);
    17. int left = tmp, right = tmp + 1;
    18. System.out.println(left + " " + right);
    19. int count = 0;
    20. while(left >= 0 && right < len) {
    21. if (ch[left] == '0' && ch[right] == '1') {
    22. count += 2;
    23. } else {
    24. break;
    25. }
    26. left--;
    27. right++;
    28. }
    29. result.add(count);
    30. count = 0;
    31. }
    32. return Collections.max(result);
    33. }
    34. }

     

     

  • 相关阅读:
    CF Round 479 (Div. 3)--D. Divide by three, multiply by two(离散化+拓扑排序)
    【ARM AMBA Q_Channel 详细介绍】
    99 # mongo 的基本安装和配置
    代码随想录 Day39 动态规划 LeetCode T139 单词拆分 动规总结篇1
    JS——经典案例
    OCC教学:拓扑
    使用Psycopg2连接openGauss 3.0(python2)
    DHCP自动分配IP原理
    关于滑块验证码的问题
    中小企业该如何选择合适,性价比超高的CRM客户管理系统?
  • 原文地址:https://blog.csdn.net/have_to_be/article/details/134300034
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号