#include
#define maxsize 100
typedef
struct
sqstring;
void
strassign
(sqstring &s,
char cstr)
//初始化串
s.length=i;
}void
destroystr
(sqstring &s)
//釋放串
void
strcopy
(sqstring &s,sqstring t)
//串copy
s.length=t.length;
}bool strequal
(sqstring s,sqstring t)
//判斷串是否相等
else
for(i=
0;ireturn same;
}int
strlength
(sqstring s)
//串的長度
sqstring concat
(sqstring s,sqstring t)
//串的連線
for(i=
0;i)//copy到str
return str;
}sqstring substr
(sqstring s,
int i,
int j)
//求子串
//引數不正確時返回null
for(k=i-
1;k1;k++
)//複製str
str.length=j;
return str;
} sqstring insstr
(sqstring s1,
int i,sqstring s2)
//插入子串
sqstring delstr
(sqstring s,
int i,
int j)
//delete
for(k=
0;k1;k++
)//複製str
for(k=i+j-
1;k)//複製str
str.length=s.length-j;
return str;
}sqstring repstr
(sqstring s,
int i,
int j,sqstring t)
//子串替換
for(k=
0;k)for
(k=i+j-
1;k) str.length=s.length-j+t.length;
return str;
}void
dispstr
(sqstring s)
//輸出串
printf
("\n");
}}void
getnext
(sqstring t,
int next)
//由模式串t求出next值
else}}
intbf
(sqstring s,sqstring t)
else
//主串、子串指標回溯重新開始下一次匹配}if
(j>=t.length)
return
(i-t.length)
;//返回匹配的第乙個字元的下標
else
return(-
1);//模式匹配不成功
}int
main()
字串暴力匹配演算法
暴力匹配演算法 如果用暴力匹配的思路,並假設現在 str1 匹配到 i位置,子串 str2 匹配到 j 位置,則有 1 如果當前字元匹配成功 即 str1 i str2 j 則i j 繼續匹配下乙個字元 2 如果失配 即 str1 i str2 j 令i i j 1 j 0 相當於每次匹配失敗時,i...
演算法 字串匹配演算法 暴力匹配演算法 KMP演算法
如果當前字元匹配成功,即 str1 i str2 j 則 i j 繼續匹配下乙個字元 如果當前字元匹配失敗,則 i i j 1 j 0 也就是每次匹配失敗時,i回溯,j被置為0 public static void main string args 暴力匹配演算法 public static int...
字串匹配 暴力搜尋演算法
主要特徵 1 沒有預處理階段 2 需要常量額外空間 3 通常需要模式串視窗向右移動乙個位置 4 可以按照任意順序進行比較 5 搜尋的時間複雜度為 o mn 6 文字字元期望比較次數 2n演算法描述 暴力搜尋演算法由文字串中從0到 n m所有位置的比較組成,無論是否從模式串的起始位置開始,每次匹配過後...