[JavaScript 刷题] 贪心 - 分割平衡字符串, leetcode 1221

Posted GoldenaArcher

tags:

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

[javascript 刷题] 贪心 - 分割平衡字符串, leetcode 1221

题目地址:1221. Split a String in Balanced Strings

题目如下:

Balanced strings are those that have an equal quantity of 'L' and 'R' characters.

Given a balanced string s, split it in the maximum amount of balanced strings.

Return the maximum amount of split balanced strings.

解题思路

这道题有点绕,我刚开始理解错误了……以错误的提交为例:

RL RL RLRRRLLRLL RRLL

这样就应该有三个子字符串,不过答案是 2,原因是正确的分割方式应该如下:

RL RLRRRLLRLL RRRLLRLL

还是因为对题目的理解有误,我以为是可以跳过一些字符。

一旦了解了题目之后,解题就变得挺容易的,毕竟题目中列明了:

  • 只有 R 和 L
  • R 和 L 的数量一致

因此使用一个数字去计算 R 和 L 的数量,当该数字为 0 时增加平衡字符串的数量即可。

使用 JavaScript 解题

/**
 * @param string s
 * @return number
 */
var balancedStringSplit = function (s) 
  let balanced = 0;
  let counter = 0;
  for (let i = 0; i < s.length; i++) 
    const char = s[i];
    if (char === "R") balanced++;
    else balanced--;

    if (balanced === 0) counter++;
  

  return counter;
;

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

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

贪心1221. 分割平衡字符串

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

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

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

[JavaScript 刷题] 贪心 - 分配饼干, leetcode 455