我試圖實(shí)現(xiàn)knuth morris pratt算法。文本中出現(xiàn)的圖案外觀不會(huì)得到打印。count變量保存模式在字符串中出現(xiàn)了多少次的值。請(qǐng)幫助解決問題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貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個(gè)贊
對(duì)于j> = 0 && pattern [i]!= pattern [j] {
應(yīng)該
對(duì)于j> 0 && pattern [i]!= pattern [j] {
- 1 回答
- 0 關(guān)注
- 264 瀏覽
添加回答
舉報(bào)
0/150
提交
取消