→ y2j60537: 建failure function是拿p去run p 在text T找p就是拿p去 01/30 10:03
→ y2j60537: run T 01/30 10:03
→ y2j60537: run的過程跟找failure function一樣 failure function 01/30 10:03
→ y2j60537: 可 01/30 10:03
推 wei12f8158: q是T跟p的最大配對長度 01/30 10:16
推 skyHuan: KMP的精神就是想要利用比對過的資訊減少比對失敗的成本, 01/30 10:20
→ skyHuan: pi func找出來之後,如果比對失敗就可以直接shift到正確 01/30 10:20
→ skyHuan: 位置,不用再一個字元一個字元shift,以下面這個跑到一半 01/30 10:20
→ skyHuan: 的例子為例 01/30 10:20
→ skyHuan: T跟P比對到失敗的時候,在失敗處前面畫一條線,前面總共 01/30 10:20
→ skyHuan: 有5個字,這時候去查pi(5)=3,意思是P5之suffix與P之pref 01/30 10:20
→ skyHuan: ix可以配對到3個字元一樣,所以直接shift到剛剛畫的那條 01/30 10:20
→ skyHuan: 線前面剩3個字元,可以發現這三個字元往上看跟還沒shift 01/30 10:20
→ skyHuan: 以前是一樣的(跟pi func得知的結果一樣),也就是不用再 01/30 10:20
→ skyHuan: 花成本去比對前面,直接從線後面比對下去就好 01/30 10:20
推 sooge: 謝謝sky大 原本都忘了怎麼解你講完後記憶瞬間回來XD 01/30 11:41
推 skyHuan: 謝謝立宇JJ >///< 01/30 11:43
→ kaidi620: 感謝y2大神!!太謝謝你了 小弟笨笨就是需要詳細過程感恩! 01/30 19:21
→ kaidi620: 謝謝S大! 01/30 19:22
→ kcilao110779: 推sky大詳細教學>< 01/30 23:19