原始问题:
小红定义的可爱串:含"red"子序列且不含"red"子串的字符串计数问题(对10^7取模)
我们可以通过计算每种子序列的数量来解决这个问题。首先,我们需要找到所有可能的子序列。对于给定的字符串,我们可以选择包含0个、1个、2个或3个字符的子序列。这是因为我们可以在每个位置选择一个字符,但是不能在连续的位置上选择相同的字符。
- 包含0个字符的子序列:空字符串。这种情况不可能是可爱串,因为它不包含"red"。
- 包含1个字符的子序列:只有"r"和"e"两种选择。如果选择了"r",则还需要选择一个字符,但不能是"r",所以只有一种选择("e")。如果选择了"e",则还需要选择一个字符,但不能是"e",所以只有一种选择("d")。因此,有2种子序列满足条件。
- 包含2个字符的子序列:有4种选择:("rr","re","rd","er")。其中,"rr"和"er"是可爱串,因为它们包含子序列"red",且不包含子串"red";"re"和"rd"不是可爱串,因为它们包含子串"red"。所以,有2种子序列满足条件。
- 包含3个字符的子序列:有6种选择:("rrr","ree","rde","ree","rdr","rde")。其中,"rrr"和"rde"是可爱串,因为它们包含子序列"red",且不包含子串"red";"ree"和"rdr"不是可爱串,因为它们包含子串"red$
Prev:"好二叉树形态数量计算(节点数为n,结果取模10^9+7)的JS实现方法"