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