看板 Grad-ProbAsk 關於我們 聯絡資訊
1.compute the failure function f of the following string: P[1..8]="ABABABCA" 請問各位的解法是? 我自己寫的根網路上面解答提供的有點不太一樣 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.75.25
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
sneak: 其實也不用你看到他P https://daxiv.com 09/11 14:46