字串匹配的總結

2021-07-24 02:13:39 字數 746 閱讀 1923

字串匹配一直是我們都需要面對(做題和工作)的問題,現在此總結三**:

1.kmp演算法:**kmp

2.字尾陣列法:字尾陣列入門

3.hash**:

將字串按位展開並乘上乙個質數的冪再取模,極小概率下兩字串不等但hash值等,所以可以認為這種做法是正確的。

#include#include#include#define maxn 150000

using namespace std;

int pri[4]=;

const int con=317;

const int inf=100000007;

int n,m;

int a[maxn],b[maxn];

long long h[maxn],xp[maxn];

int main()

for (int i=n;i>0;i--)

xp[0]=1;

for (int i=1;i<=n;i++)

scanf("%d",&last);

b[1]=pri[3];

for (int i=2;i<=m;i++)

long long t1=0,tt=0;

for (int i=m;i>1;i--)

tt=t1%inf;

int cnt=0;

for (int i=1;i<=n;i++)

printf("%d\n",cnt);

for (int i=0;i

字串匹配

題目描述 讀入資料string 然後讀入乙個短字串。要求查詢string 中和短字串的所有匹配,輸出行號 匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如 aa 123 bb 就是說aa1bb aa2bb aa3bb都算匹配。輸入 輸入有多組資料。每組資料第一行輸入n 1 n ...

字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...

字串匹配

面試題 給一串很長的字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3 這些都要找出來 思路一 利用兩層迴圈,逐個查詢目的串中的字元,比如先查詢字元 1 是否在長字串中,再查詢 2 是否在長字串中,直到目的串遇到 0 是 include include include int m...