不同子序列的数量

有一个leetcode问题:不同的子序列。

给定一个字符串S和一个字符串T,计算S中不同子序列的个数。字符串的子序列是一个新的字符串,它是由原始字符串形成的,通过删除一些(可以不是)字符而不会干扰剩余字符的相对位置。 (即“ACE”是“ABCDE”的子序列,而“AEC”不是)。

这里是一个例子:S =“兔子”,T =“兔子”返回3。


我的问题:

在这里,我不明白什么是“计数S中T的不同子序列的数量”的含义,我认为“r”,“ra”,“b”rab“,”rabt“等都是T的子序列,而且他们也在S中,但是回报给出了答案“3”,所以我一定误解了这个问题,有谁能给我解释一下吗?只给我一些更典型的例子和解释是可以的,不要告诉我如何解决它,我希望作为一个练习。预先感谢


通过删除S中的第一个,第二个或第三个“b”,可以从S =“rabbbit”中获得T =“rabbit”。因此,可能的变体的数量是3。


我想你误解了这个问题。 在S中计算T中不同子序列的数量意味着S(兔子)中T(兔子)有多少独特外观。

答案是三:

粗体字母是删除的字母)

ra b bbit ==兔子

b位==兔子

兔子b它==兔子

看到? “兔子”一词的三个不同的子序列采用了字符串“rabbbit”。 每次都删除不同的字符。

链接地址: http://www.djcxy.com/p/61511.html

上一篇: number of distinct subsequence

下一篇: Longest common subsequence with fixed length substrings