字串匹配(KMP BF)

2022-07-01 03:00:29 字數 1355 閱讀 5047

字串匹配

題目描述

設計乙個程式,從乙個主字串中查詢乙個子字串在主串中第一次出現的位置。主串和子串的長度不超過100。如果找不到,則輸出-1.

程式輸入說明

第一行輸入乙個整數n,說明需要進行匹配的例項數。

第二行輸入第一組需要進行匹配的主串

第三行輸入第一組需要匹配的子字串。

以下各行按照上面兩行的格式輸入,直到輸入了n組匹配例項。

程式輸出說明

輸出n行,每行顯示對應的匹配組中子串在主串中第一次出現的位置。

程式輸入樣例

3

abaaaaaa

abacdeagb

acaaaa

bb

程式輸出樣例

1

2-1

1 #include2 #include3 #include4

using

namespace

std;

56 typedef char*string;78

intlen1,len2;

9char s[110

];10

char t[110

];11

12void get_next(string t,int *next)

23else

26} 27}

2829

int index_kmp(string s,string t,int

pos)

39else42}

43if(j>len2)

46else

47return -1;48

}4950int

main()

59return0;

60 }

bf演算法

1

//bf演算法

字串匹配問題 KMP BF

bf演算法實現 複雜度o m n 在str的pos下標開始,判斷是否包含sub字串,包含則返回第一次匹配成功的開始下標 int bf const char str,const char sub,int pos else 此處沒匹配上 if j lensub 上述if中,j 後,如果j lensub則...

字串匹配

題目描述 讀入資料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中保證不出現...