KMP算法難度較大,在理解時會有很大的難度,在這里建議大家參考LeetCode28. 實現(xiàn) strStr()、LeetCode459.重復(fù)的子字符串兩個題目,并參照代碼隨想錄進(jìn)一步理解
成都創(chuàng)新互聯(lián)公司提供成都做網(wǎng)站、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計,成都品牌網(wǎng)站建設(shè),廣告投放平臺等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10余年的網(wǎng)站開發(fā)和建站經(jīng)驗,助力企業(yè)信息化建設(shè),成功案例突破超過千家,是您實現(xiàn)網(wǎng)站建設(shè)的好選擇.網(wǎng)址如下:
LeetCode28文章講解
https://programmercarl.com/0028.%E5%AE%9E%E7%8E%B0strStr.html
LeetCode459文章講解
https://programmercarl.com/0459.%E9%87%8D%E5%A4%8D%E7%9A%84%E5%AD%90%E5%AD%97%E7%AC%A6%E4%B8%B2.html
本文中預(yù)先附上KMP算法的相關(guān)代碼,供大家學(xué)習(xí)參考
(二刷再戰(zhàn))
void getNext(int* next, const string& s){
int j = -1;
next[0] = j;
for(int i = 1; i< s.size(); i++) { // 注意i從1開始
while (j >= 0 && s[i] != s[j + 1]) { // 前后綴不相同了
j = next[j]; // 向前回退
}
if (s[i] == s[j + 1]) { // 找到相同的前后綴
j++;
}
next[i] = j; // 將j(前綴的長度)賦給next[i]
}
}
總結(jié)篇
字符串的內(nèi)容相對來說比較簡單,總的來看考察題型分為這幾種:
字符串的基本操作
庫函數(shù)的相關(guān)使用
雙指針法
反轉(zhuǎn)系列
KMP算法的相關(guān)應(yīng)用(重點(diǎn))
字符串類類型的題目,往往想法比較簡單,但是實現(xiàn)起來并不容易,復(fù)雜的字符串題目非??简瀸Υa的掌控能力。
特別注意雙指針法是字符串處理的???。
加油💪!
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧