摘要:
编辑距离 关于两个字符串s1,s2的差别,可以通过计算他们的最小编辑距离来决定。 所谓的编辑距离: 让s1和s2变成相同字符串需要下面操作的最小次数。1. 把某个字符ch1变成ch22. 删除某个字符3. 插入某个字符例如 s1 = “12433” 和s2=”1233”; 则可以通过在s2中间插入4得到12433与s1一致。 即 d(s1,s2) = 1 (进行了一次插入操作)编辑距离的性质计算两个字符串s1+ch1, s2+ch2的编辑距离有这样的性质:1. d(s1,””) = d(“”,s1) = |s1| d(“ch1”,”ch2”) = (ch1 == ch2) ? 0 : 1;2. 阅读全文
摘要:
KMP算法可以再O(m+n)的时间数量级上完成串的模式匹配操作,对于普通的模式匹配的改进之处在于:每当一趟匹配过程中出现字符比较不等时,不需回溯指向主串的指针,而是利用已经得到的“部分匹配”的结果将模式向右“滑动”尽可能远的一段距离后,继续比较。看下具体的例子: i=3第一趟匹配 a b a b c a b c a c b a b a b c j=3 i=7第二趟匹配 a b a b c a b c a c b a b a b ca cj=5 i=11第三趟匹配 a b a b c a b c a c b a b (a) b c a c j=2 j=6设主串为‘s1s2...sn’,模式串为. 阅读全文