LeetCode 1221. 分割平衡字符串

在一个「平衡字符串」中,‘L’ 和 ‘R’ 字符的数量是相同的。

给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。

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

题目有异议,如RRRLLRLL,按测试用例的要求,即从头到尾算起,应该是1,但可将其分为R RRLL RL L,这样答案应为2,总之题目将其简化了,思路就简单了,声明一个计数器,遇到L加1,遇到R减1,最终为0时结果加1:

class Solution {
public:
    int balancedStringSplit(string s) {
        int res = 0, cur = 0;

        for (char c : s) {
            if (c == 'L') {
                ++cur;
            } else {
                --cur;
            }
            
            if (cur == 0) {
                ++res;
            }
        }

        return res;
    }
};
posted @ 2021-09-06 22:04  epiphanyy  阅读(13)  评论(0)    收藏  举报  来源