不同子序列的数量

时间:2014-08-02 23:08:57

标签: algorithm subsequence

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

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

这是一个例子: S =" rabbbit",T ="兔子" 返回3.


我的问题:

在这里,我不明白 &#34的含义是什么?计算S&#34中T的不同子序列的数量; 我认为" r"," ra"," b"拉","拉特"等等都是T的子序列,它们也在S中。但是回报给出答案" 3"。所以,我一定是误解了这个问题,有人能解释一下吗?只是给我一些更典型的例子和解释是好的,不要告诉我如何解决它,我希望这样做是一个练习。提前致谢

2 个答案:

答案 0 :(得分:0)

你可以得到T ="兔子"来自S =" rabbbit"删除第一个,第二个或第三个" b"因此,可能的变体数量为3。

答案 1 :(得分:0)

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

答案是三:

粗体字母是已删除的字母)

b b b i t == rabbit

b a b b b i t == rabbit

b a b b b i t == rabbit

请参阅?单词" rabbit"的三个不同的子序列采取字符串" rabbbit"。每次删除一个不同的字符。