当前位置:网站首页>leetcode1221. 分割平衡字符串
leetcode1221. 分割平衡字符串
2022-06-25 04:01:00 【2021dragon】

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,则说明该平衡字符串最多可以分割为多少个子平衡字符串。
动图演示:
代码如下:
边栏推荐
- 深度学习——几种学习类型
- Code scanning payment flow chart of Alipay payment function developed by PHP
- 如何筛选出和产品相关的词,精准排除掉无效词
- sql_ mode=only_ full_ group_ By's pit
- halcon之区域:多种区域(Region)生成(3)
- GBASE 8s存储过程执行和删除
- Blob page in gbase 8s
- What is persistence? What are RDB and AOF in redis persistence?
- CTF_ Web: deserialization learning notes (I) classes and objects in PHP
- Data import and export for gbase 8s
猜你喜欢

Vscode 设置clang-format

Part I Verilog quick start

什么是存储引擎以及MySQL常见的三种数据库存储引擎

jsz中的join()

CTF_ Web: Advanced questions of attack and defense world expert zone WP (1-4)

小白学习MySQL - 统计的'投机取巧'

Unit test coverage

Finereport displays and hides column data according to conditions

JS arguments

cnpm : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
随机推荐
JS arrow function
php封装curl发送get、post请求方法,并使用
OOP 向量加减(友元+拷贝构造)
A detailed summary of four handshakes (or four waves) over TCP connections
Laravel document sorting 11. System architecture
Use of deferred environment variable in gbase 8s
Laravel document sorting 4. Controller
Vscode 设置clang-format
GBASE 8s 索引B+树
Nodejs connects to MySQL through heidisql, and ER appears_ BAD_ DB_ ERROR: Unknown database 'my_ db_ books'
CTF_ Web: Advanced questions of attack and defense world expert zone WP (1-4)
机器学习深度学习——向量化
什么是持久化?redis 持久化中的RDB和AOF是什么?
Cascading deletion of gbase 8s
Multithreading structure of gbase 8s
PHP encapsulates curl to send get and post request methods, and uses
js的call()和apply()
Win10 environment phpstudy2016 startup failure record
Failed to install redis interface
Anaconda安装+TensorFlow安装+Keras安装+numpy安装(包含镜像和版本信息兼容问题)



