1221. 分割平衡字符串

简介: 平衡字符串 中,'L' 和 'R' 字符的数量是相同的。给你一个平衡字符串 s,请你将它分割成尽可能多的子字符串,并满足:每个子字符串都是平衡字符串。返回可以通过分割得到的平衡字符串的 最大数量 。

平衡字符串 中,'L' 和 'R' 字符的数量是相同的。

给你一个平衡字符串 s,请你将它分割成尽可能多的子字符串,并满足:

每个子字符串都是平衡字符串。
返回可以通过分割得到的平衡字符串的 最大数量 。

示例 1:

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

输入:s = "RLRRRLLRLL"
输出:2
解释:s 可以分割为 "RL"、"RRRLLRLL",每个子字符串中都包含相同数量的 'L' 和 'R' 。
注意,s 无法分割为 "RL"、"RR"、"RL"、"LR"、"LL" 因为第 2 个和第 5 个子字符串不是平衡字符串。
示例 3:

输入:s = "LLLLRRRR"
输出:1
解释:s 只能保持原样 "LLLLRRRR" 。

提示:

2 <= s.length <= 1000
s[i] = 'L' 或 'R'
s 是一个 平衡 字符串

来源:力扣(LeetCode)

class Solution {
   
public:
    int balancedStringSplit(string s) {
   
        int ret=0,i=0,num=0;
while(s[i]!='\0')
{
   
    if(s[i]=='L')
     num++;
     if(s[i]=='R')
     num--;
     if(num==0)
     ret++;
     i++;
}
return ret;
    }
};

while(s[i]!='\0')
{
if(s[i]=='L')
num++;
if(s[i]=='R')
num--;
if(num==0)
ret++;
i++;
}

相当于字符串匹配问题

当s[i]不为空时,如果第一个字符为L的话,用num++,i++ ,

当一个字符串为R时,num--这样的话,

当num=0时,有几个L,就会有几个R。

然后ret++,记录匹配的个数

目录
相关文章
|
3月前
|
算法 前端开发
100224. 分割数组
100224. 分割数组
20 0
|
4月前
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
|
8月前
|
机器学习/深度学习 监控 TensorFlow
数据分割
在机器学习和数据分析中,数据分割是指将可用数据集划分为训练集、验证集和测试集等子集的过程。这种分割的目的是为了评估和验证机器学习模型的性能,并对其进行调优和泛化能力的评估。下面我将解释为什么要进行数据分割,以及如何进行数据分割,并提供一个简单的示例。
167 0
|
5月前
|
算法 测试技术 C++
C++算法:分割回文串
C++算法:分割回文串
|
4月前
leetcode-1221:分割平衡字符串
leetcode-1221:分割平衡字符串
18 0
|
11月前
|
存储 算法 前端开发
前端算法-回文串分割
前端算法-回文串分割
leetcode 1221 分割平衡字符串
leetcode 1221 分割平衡字符串
47 0
|
安全 算法 索引
对字符串进行分割并且补位的算法解析
重点掌握StringBuilder和StringBuffer和String的区别
对字符串进行分割并且补位的算法解析
leetcode 416 分割等和子集
leetcode 416 分割等和子集
51 0
leetcode 416 分割等和子集