为了账号安全,请及时绑定邮箱和手机立即绑定

在不打印的情况下,“模式”字符串的结果“计数”。这是代码

在不打印的情况下,“模式”字符串的结果“计数”。这是代码

Go
梵蒂冈之花 2021-03-31 17:15:45
我试图实现knuth morris pratt算法。文本中出现的图案外观不会得到打印。count变量保存模式在字符串中出现了多少次的值。请帮助解决问题package main    import "fmt"    func kmppre(pattern string, shiftarr []int) {        m := len(pattern)        i := 0        j := -1        for i < m {            for j >= 0 && pattern[i] != pattern[j] {                j = shiftarr[j]            }            i++            j++            shiftarr[i] = j        }    }    func kmp(text string, pattern string) int {        n := len(text)        m := len(pattern)        count := 0        i, j := 0, 0        shiftarr := make([]int, m+1)        kmppre(pattern, shiftarr)        for i < n {            for j >= 0 && text[i] != pattern[j] {                j = shiftarr[j]            }            i++            j++            if j == m {                count++                j = shiftarr[j]            }        }        return count    }    func main() {        fmt.Print("enter the text \n")        var text string        fmt.Scan(&text)        fmt.Print("enter the pattern string\n")        var pattern string        fmt.Scan(&pattern)        a := kmp(text, pattern)        fmt.Println(a)    }
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

对于j> = 0 && pattern [i]!= pattern [j] {

应该

对于j> 0 && pattern [i]!= pattern [j] {


查看完整回答
反对 回复 2021-04-19
  • 1 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信