[LeetCode]字符串
总结:
应用领域的一些有意思的问题:
(1)敏感词过滤服务
(2)NLP领域的AC自动机
(3)regex
1.三道相关的题目
1.判断子序列,针对该题有一个后续挑战: 如果有大量输入的 S,称作S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?
2.匹配子序列的单词数,该题和上题的后续挑战类似,但是不满足 k >= 10亿的条件。
2.分割平衡字符串
题目描述:在一个「平衡字符串」中,’L’ 和 ‘R’ 字符的数量是相同的。给出一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。返回可以通过分割得到的平衡字符串的最大数量。看示例如下:
输入:s = "RLRRLLRLRL"
输出:4
解释:s 可以分割为 "RL", "RRLL", "RL", "RL", 每个子字符串中都包含相同数量的 'L' 和 'R'。
这里还有,
输入:s = "RLLLLRRRLR"
输出:3
解释:s 可以分割为 "RL", "LLLRRR", "LR", 每个子字符串中都包含相同数量的 'L' 和 'R'。
这里,
输入:s = "LLLLRRRR"
输出:1
解释:s 只能保持原样 "LLLLRRRR".
基本解题思路:开心消消乐。
def balancedStringSplit(s:str)->int:
res = 0
cur = 0
for ch in s:
if ch == 'L':
cur -= 1
else:
cur += 1
if cur == 0:
res += 1
return res