• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

[Swift]LeetCode1221.分割平衡字符串|SplitaStringinBalancedStrings

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(let_us_code)
➤博主域名:https://www.zengqiang.org
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

Balanced strings are those who have 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 splitted balanced strings.

Example 1:

Input: s = "RLRRLLRLRL"
Output: 4
Explanation: s can be split into "RL", "RRLL", "RL", "RL", each substring contains same number of 'L' and 'R'.
Example 2:

Input: s = "RLLLLRRRLR"
Output: 3
Explanation: s can be split into "RL", "LLLRRR", "LR", each substring contains same number of 'L' and 'R'.
Example 3:

Input: s = "LLLLRRRR"
Output: 1
Explanation: s can be split into "LLLLRRRR".

Constraints:

1 <= s.length <= 1000
s[i] = 'L' or 'R'


在一个「平衡字符串」中,'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'


0ms

 1 class Solution {
 2     func balancedStringSplit(_ s: String) -> Int {
 3         if s.isEmpty { return 0 }
 4         
 5         var r = 0
 6         var l = 0
 7         var count = 0
 8         var arrayString = Array(s)
 9         for var i in 0..<arrayString.count {
10             if arrayString[i] == "L" {
11                 l += 1
12             } else {
13                 r += 1
14             }
15             
16             if r == l {
17                 count += 1
18             }
19         }
20         return count
21     }
22 }

4ms

 1 class Solution {
 2     func balancedStringSplit(_ s: String) -> Int {
 3         var balance = 0
 4         var count = 0 
 5         
 6         for cha in s {
 7             if cha == "R" {
 8                 balance += 1
 9             } else {
10                 balance -= 1
11             }
12             
13             if balance == 0 {
14                 count += 1
15             }
16         }
17         
18         return count
19     }
20 }

8ms

 1 class Solution {
 2     func balancedStringSplit(_ s: String) -> Int {
 3         var b = 0
 4         var ans = 0
 5         for c in s {
 6             if c == "L" {
 7                 b -= 1
 8             } else {
 9                 b += 1
10             }
11             if b == 0 {
12                 ans += 1
13             }
14         }
15         return ans
16     }
17 }

12ms

 1 class Solution {
 2     func balancedStringSplit(_ s: String) -> Int {
 3         var counter = 0
 4         var balancedStrings = [String]()
 5         var balancedString = ""
 6         for char in s {
 7             var val = char == "R" ? 1 : -1
 8             counter += val
 9             
10             if counter == 0 {
11                 balancedStrings.append(balancedString)
12                 balancedString = ""
13             } else {
14                 balancedString += String(char)
15             }
16         }
17         return balancedStrings.count
18     }
19 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Swift开发iOS项目实战视频教程(二)---图片与动画发布时间:2022-07-13
下一篇:
【基本功】深入剖析Swift性能优化发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap