给定一个字符串说S
长度m
和一组其他R
长度都等于或大于的字符串m
。查找集合中具有S
子序列的字符串。
因此,如果S
是blr
并且字符串集是:
bangalore
booleer
bamboo
它应该返回前两个字符串。
我知道我可以 在时间复杂度 O(n+m)中找到一个S
长度字符串m
是否是其他T
长度字符串的子序列。n
所以我知道我可以对集合中的每个元素执行此算法,但这将是 O(k*(n+m)) 的时间复杂度,k
即集合的大小(并假设所有字符串都具有相同的长度)。这让我想知道是否有某种预处理可以帮助我用多个字符串解决这个问题。
那么,有什么预处理或结构可以用来解决这个问题吗?我能达到的最佳时间复杂度是多少?有没有其他方法可以解决这个问题?