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++,记录匹配的个数

目录
相关文章
|
8月前
|
算法 前端开发
100224. 分割数组
100224. 分割数组
49 0
|
8月前
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
一个16位的数以4位为一组分割,然后将各部分相加获取最终结果。
|
机器学习/深度学习 监控 TensorFlow
数据分割
在机器学习和数据分析中,数据分割是指将可用数据集划分为训练集、验证集和测试集等子集的过程。这种分割的目的是为了评估和验证机器学习模型的性能,并对其进行调优和泛化能力的评估。下面我将解释为什么要进行数据分割,以及如何进行数据分割,并提供一个简单的示例。
354 0
09_分割等和子集
09_分割等和子集
|
算法 测试技术 C++
C++算法:分割回文串
C++算法:分割回文串
|
8月前
leetcode-1221:分割平衡字符串
leetcode-1221:分割平衡字符串
44 0
|
8月前
|
Java
leetcode-416. 分割等和子集
leetcode-416. 分割等和子集
27 0
|
机器学习/深度学习 人工智能 自然语言处理
MaskFormer:将语义分割和实例分割作为同一任务进行训练
目标检测和实例分割是计算机视觉的基本任务,在从自动驾驶到医学成像的无数应用中发挥着关键作用。目标检测的传统方法中通常利用边界框技术进行对象定位,然后利用逐像素分类为这些本地化实例分配类。但是当处理同一类的重叠对象时,或者在每个图像的对象数量不同的情况下,这些方法通常会出现问题。
4876 0
|
安全 算法 索引
对字符串进行分割并且补位的算法解析
重点掌握StringBuilder和StringBuffer和String的区别
对字符串进行分割并且补位的算法解析