LeetCode 1221 分割平衡字符串[贪心] HERODING的LeetCode之路

Posted HERODING23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 1221 分割平衡字符串[贪心] HERODING的LeetCode之路相关的知识,希望对你有一定的参考价值。


解题思路

只要你够贪心,就能轻松解决这道问题!既然字符串本身已经是平衡字符串,那么只要找到平衡子串,剩下的肯定也是平衡子串!那么一路贪心下去就好了,只要遍历的子串区间L和R数量相等就分割,num++,L和R再重新计数,直到最后,代码如下:

代码

class Solution {
public:
    int balancedStringSplit(string s) {
        int num = 0;
        int count_R = 0, count_L = 0;
        for(int i = 0; i < s.length(); i ++) {
            if(s[i] == 'R') {
                count_R ++;
            } else {
                count_L ++;
            }
            if(count_R == count_L && count_R != 0) {
                count_R = 0;
                count_L = 0;
                num ++;
            }
        }
        return num;
    }
};

当然还可以简单优化一下,只要L和R数量保持平衡就分割,代码如下:

class Solution {
public:
    int balancedStringSplit(string s) {
        int num = 0, balance = 0;
        for(int i = 0; i < s.length(); i ++) {
            s[i] == 'L' ? balance ++ : balance --;
            if(balance == 0) {
                num ++;
            }
        }
        return num;
    }
};

以上是关于LeetCode 1221 分割平衡字符串[贪心] HERODING的LeetCode之路的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题100天—1221. 分割平衡字符串( 双指针或贪心)—day31

Leetcode刷题100天—1221. 分割平衡字符串( 双指针或贪心)—day31

LeetCode 1221. 分割平衡字符串(贪心算法解决)

贪心1221. 分割平衡字符串

leetcode1221. 分割平衡字符串

leetcode 1221. 分割平衡字符串