总结:

应用领域的一些有意思的问题:

(1)敏感词过滤服务

(2)NLP领域的AC自动机

(3)regex

1.三道相关的题目

1.判断子序列,针对该题有一个后续挑战: 如果有大量输入的 S,称作S1, S2, … , Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?

2.匹配子序列的单词数,该题和上题的后续挑战类似,但是不满足 k >= 10亿的条件。

3.形成字符串的最短路径

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