1.3串

        串(string)是由零個或多個字符組成的有限序列,又名字符串。

模式匹配

        子串的定位操作通常稱作串的模式匹配

1、樸素模式匹配算法

        以從主串S=“goodgoogle”中找到T=“google”這個子串的位置。
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2、KMP模式匹配算法

        如果有多個0和1重複字符的字符串,挨個遍歷的算法是非常糟糕的事件。一個可以大大避免遍歷的算法——KMP算法。如果主串S=“abcdefgab”,匹配的T=“abcdex”。如果用樸素算法的話,前五個字母,兩個字符串完全相等,知道第六個字母,f和x不相等。
在這裏插入圖片描述
按照樸素模式匹配算法,應如上圖的流程2、3、4、5、6。即主串S中當i=2、3、4、5、6時,首字符與子串T的首字符均不等。仔細觀察發現,對於要匹配的子串T來說,"abcdex"首字符"a"與後面的串"bcdex"中任意一個字符都不相等。對於上圖流程1來說,前五位字符分別相等,意味着子串T的首字符"a"不可能與S串的第二位到第五位的字符相等。所以上圖流程2、3、4、5的判斷都是多餘。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章