推 BigTora:-1, -1, 0, 1, 2, 3, -1, 0 ? 01/15 17:18
→ gskman:依照KMP-algo應該是這答案,但是rnbjacky跟sos提供的答案 01/15 17:30
→ gskman:是0 0 1 2 3 4 0 1 01/15 17:31
→ Byzantin:樓上的才是正解 01/15 17:44
→ gskman:其實這是一個初始值上設定的問題,我翻Horowitz的書是給-1 01/15 17:48
→ gskman:但是我想會有兩個答案同時 給這個答案應該是有其他想法 01/15 17:49
→ gskman:網路上面有少部分初始值給0,這考卷既沒給程式碼,又不給初值 01/15 17:50
→ gskman:我不知道該怎麼寫答案,誰可以給我個明燈 01/15 17:51
→ Byzantin:你去看一下比對的code,就知道初值該設啥了 01/15 18:15
→ gskman:我就是看Horowitz書上的code阿 01/15 18:19
→ gskman:那你可以跟我稍微解釋一下 你設初值=0的想法嗎@@ 01/15 18:20
→ gskman:還是我看的版本太舊了XD 01/15 18:20
→ Byzantin:你看一下code裡有posp = failure[pos-1]+1 01/15 18:21
→ Byzantin:題目的string的index從1開始 01/15 18:21
→ Byzantin:如果設-1會跑到0 01/15 18:21
→ Byzantin:我是這樣想的,可以討論一下 01/15 18:23
→ gskman:恩 我想我應該了解了..ok 多謝 01/15 18:28
推 pikachu123:Corman書上是從0開始 KMP我想還是照Corman巴 01/15 23:01
→ pikachu123:你string從1開始就是1樓的 01/15 23:02
→ pikachu123:講相反了= = corman是從1開始 所以沒有match到就是0 01/15 23:03
→ pikachu123:從0開始就是1樓的 01/15 23:03
→ pikachu123:KMP大部分應該都是從Corman上面出來的 01/15 23:04
推 pikachu123:其實也不用你看到他P index從1開始你就知道要設0 01/15 23:16