串的模式匹配演算法

2021-10-25 13:20:19 字數 552 閱讀 1869

這裡採用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 ...