美文网首页
贪心算法:1221. 分割平衡字符串(简单)

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

作者: 言的希 | 来源:发表于2021-04-13 11:10 被阅读0次

    在一个 平衡字符串 中,'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<m) {

                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. 分割平衡字符串(简单)

          本文链接:https://www.haomeiwen.com/subject/iavqlltx.html