第四周 3 3 字串匹配

2021-09-12 18:29:04 字數 787 閱讀 3049

時間限制:1 sec

空間限制:256 mb

給定乙個大串 a 和乙個模式串 b,求 b 在 a 的哪些位置出現(輸出這些出現位置的起始位置,下標從 0 開始)。

第一行乙個正整數 n,表示串 a 的長度。

第二行包含乙個長度為 n 的串 a。

第三行乙個正整數 m,表示串 b 的長度。

第四行包含乙個長度為 m 的串 b。

保證串 a,b 只包含小寫字母。

對於每個 b 在 a **現的位置,輸出單獨一行乙個整數表示該次出現的起始位置。

對於所有的這些位置,請公升序(從小到大)輸出。

7

abcabca

4abca

0

3

對於 60% 的資料,保證 m<=10。

對於另外 20% 的資料,保證 a 的每一位在所有小寫字母中等概率隨機,且 b 為 a 中擷取的一段。

對於 100% 的資料,保證 n<=500,000,m<=100,000。

[此題是單模匹配演算法的練習題。]

[可以嘗試暴力匹配、kmp演算法、boyer-moore演算法、rabin-karp演算法,並比較它們的效果。]

另外,為了幫助大家完成題目,我們提供了只包含了輸入輸出功能的程式模板,也提供了含有演算法的大部分實現細節的程式。

你可以根據自己的實際情況,在這些程式的基礎上進行作答,或不參考這些程式,這將與你的得分無關。

這些程式可以從【這裡

33 字串匹配演算法

題目 給乙個很長字串,要求找到符合要求的字串,例如目的串123,1 3 2,12 3這些都要找出來 解 這題的意思是,例如給定目的串s abc 那麼在這個很長的字串中尋找子字串,這個子字串中滿足s中的每個字元都要出現,並且s中的某乙個字元只出現1次。設待匹配字串長度位n,模式字串長度位m 1。對待匹...

33 字元匹配演算法

33 實現乙個挺高階的字元匹配演算法 給一串很長字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3 這些都要找出來 其實就是類似一些和諧系統。參考這題的真正意思就是,給你乙個目標串,如 123 只要乙個字串裡面同時包含1 2和3,那麼這個字元 串就匹配了。系統越和諧,說明錯殺的可...

第四周 專案3 3

問題描述及 煙台大學計控學院 作 者 王力源 完成日期 2016年9月22日 問題描述 設計乙個演算法,判斷單鏈表l是否是遞增的。實現這個演算法,並完成測試。演算法庫的 include includetypedef int elemtype typedef struct lnode 定義單鏈表結點型...