题目
在一个「平衡字符串」中,'L' 和 'R' 字符的数量是相同的。
给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。
返回可以通过分割得到的平衡字符串的最大数量。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/split-a-string-in-balanced-strings
示例
输入:s = "RLRRLLRLRL"
输出:4
解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/split-a-string-in-balanced-strings
思路
创建L变量和R变量,两个变量初始值都是0,遍历字符串,当为’L’时L+1,为’R’时R-1。再创建count变量来保存平衡字符串的数量,当前L+R === 0时,count加一
实现
if (s.length < 1 || s.length > 1000) {
return
}
let L = 0
let R = 0
let count = 0
for (let i = 0; i < s.length; i++) {
if (s[i] !== 'L' || s[i] !== 'R') {
return
}
if (s[i] === 'L') {
L++
} else {
R--
}
if (L + R === 0) {
count++
}
}
return count