首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构造一个示例,其中KMP算法必须多次回溯。

构造一个示例,其中KMP算法必须多次回溯。
EN

Stack Overflow用户
提问于 2016-05-28 11:12:42
回答 2查看 114关注 0票数 1

我正在尝试构建一个示例,其中kmp算法 computeLPSArray阶段必须对特定的I( LPS数组中的单元)多次回溯(请参阅下面的注释)。

对于'AAACAAA',它访问回溯部分两次,i = 3访问一次,i = 7访问一次

您能帮我构造一个字符串吗?它将访问某个i的回溯部分3-4次。

代码语言:javascript
运行
复制
def computeLPSArray(pat, M, lps):
    len = 0 # length of the previous longest prefix suffix
    lps[0]=0 # lps[0] is always 0
    i = 1
    while i < M:
    if pat[i]==pat[len]:
        len+=1
        lps[i] = len
        i+=1
    else:
        if len!=0:
            # backtrack section - When will we get here 3-4 times for the same i??? 
            len = lps[len-1]     
        else:
            lps[i] = 0
            i+=1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-28 12:36:18

对于'AAAACAA',它访问回溯部分的次数为i = 4 3次。

对于'AAAAACA',它访问回溯部分的次数为i = 5 4次。

票数 2
EN

Stack Overflow用户

发布于 2016-05-28 12:37:11

正如您已经提到的:示例字符串AAACAAA已经在i = 3时访问了回溯部分2次。

如果您想增加访问次数,请增加前缀中的A数。

代码语言:javascript
运行
复制
AAAAC

将访问回溯部分3次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37498272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档