我们有一个主字符串T=”xyxxyxxyzyyzzxxyyyzxxyxxyz” ,现在我们想在这个字符串里找到另一个小字符串S=”xyxxyz” 。我们使用一种叫做KMP的高效字符串匹配方法来做这件事。问题是,从开始搜索到最终找到这个小字符串的过程中,我们需要比较多少次单个的字符呢?
区块链毕设网qklbishe.com为您提供问题的解答
我们有一个主字符串T=”xyxxyxxyzyyzzxxyyyzxxyxxyz”,现在我们想在这个字符串里找到另一个小字符串S=”xyxxyz”。我们使用一种叫做KMP的高效字符串匹配方法来做这件事。问题是,从开始搜索到最终找到这个小字符串的过程中,我们需要比较多少次单个的字符呢?
模式串 S="xyxxyz" 的 PMT: [0, 0, 1, 1, 2, 0] (每个位置的最长相同前后缀长度) KMP 匹配过程: 第一次尝试(比较 6 次): 匹配 T[0..5]="xyxxyx" 和 S[0..5]="xyxxyz" ,第 6 次比较 T[5]=’x’ ≠ S[5]=’z’ ,失败。 根据 PMT[4]=2 ,模式串指针 j 从 5 回退到 2。 第二次尝试(比较 4 次): 从 T[5]=’x’ 和 S[2]=’x’ 开始,匹配 T[5..8]="xyzy" 和 S[2..5]="xxyz" ,第 4 次比较 T[8]=’y’ ≠ S[5]=’z’ ,失败。 根据 PMT[4]=2 ,模式串指针 j 从 5 回退到 2。 第三次尝试(直接成功): 从 T[18]=’x’ 开始,完整匹配 S="xyxxyz" ,比较 6 次。 总比较次数: 第一次失败:6 次 第二次失败:4 次 第三次成功:0 次(因题目问的是找到前的比较次数,成功时的 6 次不计入) 总计:6 + 4 = 10 次
47:17
以上就是关于问题我们有一个主字符串T=”xyxxyxxyzyyzzxxyyyzxxyxxyz” ,现在我们想在这个字符串里找到另一个小字符串S=”xyxxyz” 。我们使用一种叫做KMP的高效字符串匹配方法来做这件事。问题是,从开始搜索到最终找到这个小字符串的过程中,我们需要比较多少次单个的字符呢?的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训