codevs 1204 尋找子串位置

2022-03-21 21:42:33 字數 632 閱讀 4746

題目描述 description

給出字串a和字串b,保證b是a的乙個子串,請你輸出b在a中第一次出現的位置。

輸入描述 input description

僅一行包含兩個字串a和b

輸出描述 output description

僅一行乙個整數

樣例輸入 sample input

abcd bc

樣例輸出 sample output

資料範圍及提示 data size & hint

字串的長度均不超過100

pascal使用者請注意:兩個字串之間可能包含多個空格

//詳細的kmp講解,我覺得比較好的

#include#include#includeusing namespace std;

int main()

//對b串進行自匹配,儲存在f陣列中 ↑

for (int i=0,j=0;i0&&a[i]!=b[j]) j=f[j];//若是a,b串不匹配,則將b串正在匹配的位置移動到它上乙個重複的位置

if (a[i]==b[j]) j++;

if (j==l2)

}return 0;

}

尋找子串位置 codevs 1204

題目描述 description 給出字串a和字串b,保證b是a的乙個子串,請你輸出b在a中第一次出現的位置。輸入描述 input description 僅一行包含兩個字串a和b 輸出描述 output description 僅一行乙個整數 樣例輸入 sample input abcd bc 樣...

codeVS1204 尋找子串位置

kmp。一直沒有乙個裸kmp,根本看不懂kmp。蒟蒻本性。kmp的部分匹配值next j 在這個實現中的意思是,如果b j 1 和a i 失配,j next j 就是不斷返回直到b j 1 a i 計算的話,就用自己匹配自己吧。include include include using namesp...

CodeVS 1204 尋找字串位置

題目描述 description 給出字串a和字串b,保證b是a的乙個子串,請你輸出b在a中第一次出現的位置。輸入描述 input description 僅一行包含兩個字串a和b 輸出描述 output description 僅一行乙個整數 樣例輸入 sample input abcd bc 樣...