![]() |
1
3
让我们定义以下位集:
精明的
因为字母表的大小是固定的,所以位集也是固定的(每个
注意条件:
对于子字符串为true
所以,如果我们将所有的位集存储在某个集合中(哈希集/树集),并且只保留最新的条目,那么这个预处理需要
在第二次迭代中,对于每个索引,找到具有相同位集的更远的索引(
这个解决方案是
伪代码:
|
![]() |
2
3
我不知道阿米特到底是怎么建议的,所以如果是这样,请考虑另一种解释。这可以在一次遍历中完成。
例如,字符串“aabccab”:
通过对每个字符的位掩码进行预处理,可以在o(1)中完成每个迭代的更新。
表示更新与字母表位集中第一位相关联的字符。 |
![]() |
Okonjo Mitchel · CS50凯撒:分段故障问题 3 年前 |
![]() |
Baraa · 而我在java中得到无限的while循环 3 年前 |
![]() |
deficiencyOn · 用DP求解“背包” 7 年前 |
![]() |
Robbie · 使用嵌套的if-else语句理解Do-While循环 7 年前 |
![]() |
Andrei · 查找两个数组中的差异[重复] 7 年前 |
![]() |
Shkarik · 为什么我在Scala中的二进制搜索实现如此缓慢? 7 年前 |