PHP算法之分割平衡字符串

Posted 野香蕉

tags:

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

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

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

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

 

示例 1:

输入:s = "RLRRLLRLRL"
输出:4
解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 ‘L‘ 和 ‘R‘。
示例 2:

输入:s = "RLLLLRRRLR"
输出:3
解释:s 可以分割为 "RL", "LLLRRR", "LR", 每个子字符串中都包含相同数量的 ‘L‘ 和 ‘R‘。
示例 3:

输入:s = "LLLLRRRR"
输出:1
解释:s 只能保持原样 "LLLLRRRR".
 

提示:

1 <= s.length <= 1000
s[i] = ‘L‘ 或 ‘R‘

来源:力扣(LeetCode)

class Solution {

    /**
     * @param String $s
     * @return Integer
     */
    function balancedStringSplit($s) {

        $strlen = strlen($s);
        $res = 0;
        $sum = 0;

        for($i = 0; $i < $strlen; $i++)
        {
            if($s[$i] == ‘L‘){
                $sum++;
            }else{
                $sum--;
            }

            if($sum === 0){
                $res++;
            }

        }

        return $res;  
    }
}

以上是关于PHP算法之分割平衡字符串的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode之1221.分割平衡字符串

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

算法学习1221. 分割平衡字符串(java / c / c++ / python / go / rust)

leetcode刷题69.分割平衡字符串——Java版

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

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