码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • leetcode1221. 分割平衡字符串


    在这里插入图片描述

    LeetCode系列文章

    文章目录

    • 一、题目描述
    • 二、示例
    • 三、主体思路
    • 四、代码实现

    一、题目描述

      在一个平衡字符串中, ′ L ′ 'L' ′L′ 和 ′ R ′ 'R' ′R′ 字符的数量是相同的。
     
      给你一个平衡字符串 s s s,请你将它分割成尽可能多的平衡字符串。
     
      返回可以通过分割得到的平衡字符串的最大数量。
     
      注意:分割得到的每个字符串都必须是平衡字符串,且分割得到的平衡字符串是原字符串的连续子串。

    二、示例

      输入: s = “RLRRLLRLRL”
      输出: 4
     
      解释: s 可以分割为 “RL”、“RRLL”、“RL”、“RL”,每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。

    三、主体思路

      该题目实际考察的是贪心算法,也就是在求解问题时,总是做出在当前看来是最好的选择。对于该题目来说,我们在遍历平衡字符串进行分割时,一旦发现一个子平衡字符串就应该立即将其分割出来。
     
      比如对于平衡字符串 “RLRRLLRLRL”,我们在遍历时可以遍历到 “RL” 就进行分割,也可以遍历到 “RLRRLL” 再进行分割,因为 “RL” 和 “RLRRLL” 都是平衡字符串。
    在这里插入图片描述
      但题目要求的是分割得到的平衡字符串的最大数量,因此我们在遍历到 “RL” 时就应该进行分割,此时后面的 “RRLL” 就可以分割成另一个平衡字符串。按照该方法遍历所给平衡字符串,最终就能够分割后可得到的平衡字符串的最大数量。
     
      需要注意的是,所给平衡字符串最终一定会被分割为若干个完整的子平衡字符串,而不会出现某些剩余字符无法组成一个平衡字符串的情况。因为当你从平衡字符串当中分割出一个子平衡字符串后,剩下的字符串当中R和L的数量也一定是相等的,因此该字符串也是一个平衡字符串。
     
    如下图所示:
    在这里插入图片描述

    四、代码实现

    在分析问题时所说的分割字符串只是为了方便理解,实际在解题时并不需要真正对字符串进行分割。

    • 我们可以定义一个level变量,该变量的初始值设置为0。
    • 在变量平衡字符串的过程中,如果遍历到的字符是R,则对level进行自增,如果遍历到的字符是L,则对level进行自减。(反过来也可以)
    • 除了level初始值的设定,在遍历过程中level的值有几次变为0,则说明该平衡字符串最多可以分割为多少个子平衡字符串。

     
    动图演示:
    在这里插入图片描述
    代码如下: 在这里插入图片描述

  • 相关阅读:
    【面试经典 150 | 滑动窗口】串联所有单词的子串
    论格斗游戏中“一滴血反杀”现象的心理机制与启示
    【博客496】k8s dns解析与服务发现原理
    Android OkHttp源码阅读详解一
    互联网医院系统开发中的移动端应用设计
    update-alternatives的使用
    【微服务 Spring Cloud 3】云原生是实现可观测平台的唯一出路?码农:夸张了
    企业容器云安全基线体系建设最佳实践
    go类型转换,整形转字符串,浮点型转字符串,字符串到float
    【用unity实现100个游戏之15】开发一个类保卫萝卜的Unity2D塔防游戏3(附项目源码)
  • 原文地址:https://blog.csdn.net/chenlong_cxy/article/details/125441825
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号