【发布时间】:2020-08-19 21:26:08
【问题描述】:
假设我有一个字符串 s1 = "eabegcghdefgh" 和另一个字符串 s2 = "egh"。
代码应该返回答案4,因为s1 的子字符串"efgh"(因为它是包含s2 作为子序列的最小子字符串)。
注意:可能有几个子字符串,但
"efgh"是最小的子字符串。
换句话说,找到包含另一个字符串s2的所有字符的s1的最小子字符串的长度,但要按顺序。
请注意:我想问一下如何在 O(n) 时间复杂度中做到这一点。
【问题讨论】:
-
不错的问题。到目前为止你尝试了什么? O(n) 可能需要一些复杂的簿记。我会调查类似的事情:丢弃所有不(或不能)发挥作用的字符,然后搜索所有出现的字符串。如果你记住字符的原始位置,你就知道长度。不过这很棘手。
标签: string algorithm data-structures time-complexity