【发布时间】:2014-09-25 20:03:17
【问题描述】:
有一个 leetcode 问题:不同的子序列。
给定一个字符串 S 和一个字符串 T,计算 S 中 T 的不同子序列的数量。 字符串的子序列是由原始字符串通过删除一些(可以是无)字符而不干扰剩余字符的相对位置而形成的新字符串。 (即,“ACE”是“ABCDE”的子序列,而“AEC”不是)。
这是一个例子: S = “兔子”,T = “兔子” 返回 3。
我的问题:
这里,我不明白“计算S中T的不同子序列的个数”是什么意思 我认为“r”,“ra”,“b”rab”,“rabt”等都是T的子序列,它们也在S中。但是返回给出的答案是“3”。所以,我一定误解了问题,谁能给我解释一下?只是给我一些更典型的例子和解释就可以了,不要告诉我如何解决它,我希望作为一个练习来做。提前谢谢
【问题讨论】:
-
将S中T的不同子序列的数量解释为:形成
S的子序列的不同方式的数量等于T。跨度> -
非常感谢您的解释,我现在明白这个问题了。
-
那是对这句话最奇怪的解释。在我看来,它是这样说的:S 中 T 的不同子序列的数量。即 T 的不同子序列的数量,并且包含在 S 中。在我看来,它应该是“S 的不同子序列的数量相等到 T”。其中 S 的不同子序列被定义为元组 S 和要删除的字符列表(如问题前面的定义)。
标签: algorithm subsequence