题目地址:https://leetcode.com/problems/split-a-string-in-balanced-strings/
题目描述
Balanced strings are those who have equal quantity of 'L'
and 'R'
characters.
Given a balanced string s
split it in the maximum amount of balanced strings.
Return the maximum amount of splitted balanced strings.
Example 1:
Input: s = "RLRRLLRLRL"
Output: 4
Explanation: s can be split into "RL", "RRLL", "RL", "RL", each substring contains same number of 'L' and 'R'.
Example 2:
Input: s = "RLLLLRRRLR"
Output: 3
Explanation: s can be split into "RL", "LLLRRR", "LR", each substring contains same number of 'L' and 'R'.
Example 3:
Input: s = "LLLLRRRR"
Output: 1
Explanation: s can be split into "LLLLRRRR".
Constraints:
1、 1<=s.length<=1000
;
2、 s[i]='L'or'R'
;
题目大意
计算一个字符串中有多少个合法的括号匹配。
解题方法
统计
括号匹配可以使用一个变量cnt进行统计,如果遇到左括号,cnt++;如果遇到右括号,cnt--;如果cnt==0说明是一个合法的括号匹配。
C++代码如下:
class Solution {
public:
int balancedStringSplit(string s) {
int cnt = 0;
int res = 0;
for (char c : s) {
if (c == 'R') {
cnt ++;
} else {
cnt --;
}
if (cnt == 0)
res ++;
}
return res;
}
};
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
2022
DDKK.COM 弟弟快看-教程,程序员编程资料站,版权归原作者所有
本文经作者:负雪明烛 授权发布,任何组织或个人未经作者授权不得转发