KMP算法

来源:互联网 发布:数据精灵微信版本 编辑:程序博客网 时间:2024/05/29 12:06
看到很多沙雕各种转载KMP算法解析,长篇大论。
我不知道这是不是沙雕的特点,喜欢揪着一点说事,然后各种扯皮,也不管观众乐意不乐意,只顾自己开心。
活在自己的世界里,真踏马有意思。


P话不多说,也就是写一个KMP算法的匹配过程,捋捋自己的思路

借用某些沙雕的经典模板,改了一下
S:BBC ABCDAB ABCDABCDABDE
T:ABCDABD

|abcabcacdabbabcabd

|abcabd


|a|bcabcabdabbabcabd

|a|bcabd

|ab|cabcacdabbabcabd

|ab|cabd

|abc|abcacdabbabcabd

|abc|abd

|abca|bcacdabbabcabd

|abca|bd

|abcab|cacdabbabcabd

|abcab|d

abc|ab|cacdabbabcabd由于"abcab"的2个ab,所以下次匹配,T直接从T[2]开始

     |ab|cabd

abc|abc|acdabbabcabd

     |abc|abd

abc|abca|cdabbabcabd由于"abca"的2个a,所以下次匹配,T直接从T[1]开始

     |abca|bd

abcabc|a|cdabbabcabd由于"a"..所以下次匹配,T只能从T[0]开始

          |a|bcabd

abcabca|c|dabbabcabd

             abcabd

abcabcac|d|abbabcabd

               abcabd

abcabcacd|a|bbabcabd

               |a|bcabd

abcabcacd|ab|babcabd

               |ab|cabd

abcabcacdab|b|abcabd

                abcabd

abcabcacdabb|a|bcabd

                    |a|bcabd

abcabcacdabb|ab|cabd

                    |ab|cabd

abcabcacdabb|abc|abd

                    |abc|abd

abcabcacdabb|abca|bd

                    |abca|bd

abcabcacdabb|abcab|d

                    |abcab|d

abcabcacdabb|abcabd|成功

                    |abcabd|

至于算法怎么写,我想,只要不是个弱智,都能写出来。



0 0
原创粉丝点击