gpt4 book ai didi

algorithm - isSubstring(s1, s2) 复杂性(与语言无关的方法)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:41:17 25 4
gpt4 key购买 nike

我刚刚在一本概念性的书中读到:

isString(sring s1, string s2)

可以假定为 O(A+B),其中 A 是 s1 的大小,B 是 S2 的大小。

谁能告诉我这个假设是从哪里来的?

我的逻辑:如果我们假设 A > B,那么可以进行 A-B 窗口搜索。假设我们一找到它就退出。假设最坏的情况是序列中的最后一个字符每次都是假的。 (不确定这样的序列是否存在)因此,我们在对单个窗口进行 B-1 比较后退出。综上所述,我们的总操作数应该是 A-B*B-1。这是正确的逻辑还是我累了应该去 sleep )))))请告诉我。

最佳答案

对于固定字符集,Ukkonen's algorithm可以计算出Suffix Tree s1 的时间 O(A)。验证 s2 是否是一个子字符串就是验证它是否是一个有效的后缀。该遍历需要时间 O(B)。从而导致 O(A + B) 时间。

正如您所描述的,朴素算法要慢得多。

关于algorithm - isSubstring(s1, s2) 复杂性(与语言无关的方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52885914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com