bf匹配模式(蠻力匹配)思路
**
#include
intbf
(char
*s,char
*t);
//返回字串在主串中能匹配的第乙個位置
intbf
(char
*s,char
*t)else}if
(t[j]==0
)return i-j;
else
return-1
;}intmain()
kmp匹配模式思路
next陣列
求解next陣列
t='abcabx'
next[j]=011123
j=1 ; next[j]=0;
j=2 ; j由1到j-1只有字元a,next[2]=1;
j=3 ; j由1到j-1只有字元ab,next[3]=1;
j=4 ; j由1到j-1只有字元abc,next[4]=1;
j=5 ; j由1到j-1字串為abca,next[5]=2;
j=6 ; j由1到j-1字串為abcab,next[6]=3;
串:a ab abc abca abcab
如果前字尾乙個字元相等,next陣列值是2,兩個字元是3,n個字元是n+1
回溯的長度=next陣列的值-1
next匹配例項
**
#include
void
get_next
(char
*str2,
int*next)
else}}
intkmp
(char
*str1,
char
*str2)
else}if
(str2[j]==0
)return i-j;
else
return-1
;}intmain()
kmp匹配模式優化思路
**
#include
void
get_next
(char
*str2,
int*next)
else}}
intkmp
(char
*str1,
char
*str2)
else}if
(str2[j]==0
)return i-j;
else
return-1
;}intmain()
源**位址 資料結構與演算法(串)
引言 在上次佇列學習後,現在我們再學習串。主要包含kmp演算法,現在就開始資料結構與演算法的 串的學習。定義 串是由零個或者多個字元組成的有限序列,又叫字串。串的大部分操作我們曾經都實現過,這裡重點介紹kmp演算法。樸素模式匹配演算法是我們最容易思考到的一種普通演算法,其時間複雜度可以認為是o n ...
資料結構與演算法 串(基礎)
上上週學習了串的部分知識,今天得空將其中的一些點整理下來。資料結構中,字串要單獨用一種儲存結構來儲存,稱為串儲存結構。這裡的串指的就是字串。嚴格意義上講,串儲存結構也是一種線性儲存結構,因為字串中的字元之間也具有 一對一 的邏輯關係。只不過,與之前所學的線性儲存結構不同,串結構只用於儲存字元型別的資...
資料結構與演算法 4 串
字串簡稱串,是一種特殊的線性表,它的資料元素僅由乙個字元組成。串 string 是由零個或多個字元組成的有限序列 s a 1a 2 cdots a n 因為串是資料元素型別為字元型的線性表,所以用於線性表的儲存方式仍適合與串。但是由於串中的資料元素是單個位元組,其儲存方式又有其特殊之處。類似於線性表...