這裡採用c語言編寫,使用串的定長儲存,定義如下:
// 順序串的最大串長
#define max_str_len 255
// 0號單元存放串的長度
typedef
unsigned
char sstring[max_str_len +1]
;
基本思想:從主串的第pos個字元開始,和模式串的第乙個字元依次比較,若相同,則往後逐個比較模式串後續字元。若不等,則從珠串的下乙個字元開始從頭和模式串的字元相匹配。時間複雜度:最好情況下是o(n+m);最壞時間複雜度為o(n*m),在匹配01串的時候往往效率會比較低。
演算法實現如下:
int
index
(sstring s,sstring t,
int post=1)
else}if
(j>t[0]
)return i-t[0]
+1;return0;
}
串的模式匹配演算法
子串的定位操作通常稱做串的模式匹配,這也是串的乙個很要的操作。一,一般定位子串位置演算法 演算法基本思想 從主串的第1個字元起和模式的第乙個字元進行比較,若相等,則再比較主串和模式串的後續字元。否則將主串的後續字元和模式串的第乙個字元進行比較,在網上找的一張 return i t.length 找到...
串的模式匹配演算法
串的模式匹配演算法 子串的定位操作通常稱作串的模式匹配。通常用函式index s,t,pos 來求解,其中s為主串,t為模式串,pos為主串中的位置,整個函式的作用是返回在字串s中的第pos個字元及以後 包含pos 首次出現與字串t相匹配的子串的第乙個字元的位置。例如 s abciu 5 abcjk...
串的模式匹配演算法
1 求子串位置的定位函式 子串的定位操作通常稱做串的模式匹配,是各種串處理系統中最重要的操作之一。現採用定長順序儲存結構,可以寫出簡單匹配演算法。int index sstring s,sstring t,int pos else if j t 0 return i t 0 else return ...