贪心算法:1221. 分割平衡字符串(简单)

在一个 平衡字符串 中,'L' 和 'R' 字符的数量是相同的。给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。

注意:分割得到的每个字符串都必须是平衡字符串。

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

示例 :

        输入:s = "RLRRRLLRLL"

        输出:2

        解释:s 可以分割为 "RL"、"RRRLLRLL" ,每个子字符串中都包含相同数量的 'L' 和 'R' 。

解题思路:贪心算法,i从左到右循环,定义一个平衡变量j,当index=i时得到一个R时,将平衡变量j增加1,否则将它减少1。当平衡变量j为0时,我们就把答案num加一。

public int balancedStringSplit(String s) {

        int m = s.length();

        int i = 0;

        int j = 0;

        int num = 0;

        while(i

            if(s.charAt(i) == 'R') {

                j++; //当index=i时得到一个R时,将平衡变量j增加1

            } else {

                j--; //否则将它减少1

            }

            if(j == 0) {

                num += 1; //当平衡变量j为0时,我们就把答案num加一

            }

            i++;

        }

        return num;

    }

你可能感兴趣的:(贪心算法:1221. 分割平衡字符串(简单))