平衡字符串 中,'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)
链接:https://leetcode.cn/problems/split-a-string-in-balanced-strings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
连着随机了好几道,都是简单题,神奇。
由要求中的R和L数量相等,可以直接利用一个初始为0的int变量来存储结果,每次遇到R进行自增,遇到L进行自减,自增自减完毕后进行判断,如果是0,则说明前面的这一段符合要求。
再利用一个int型变量来存储为0的次数,就是结果。
代码如下:
class Solution { public int balancedStringSplit(String s) { int res = 0; int ju = 0; for (char a : s.toCharArray()) { if (a == 'R') { ju ++; } else { ju --; } if (ju == 0) { res ++; } } return res; } }
标签:力扣,分割,1221,int,ju,---,RL,字符串,平衡 From: https://www.cnblogs.com/allWu/p/17065680.html