28.實(shí)現(xiàn) strStr() (本題可以跳過(guò))
因?yàn)镵MP算法很難昆烁,大家別奢求一次就把kmp全理解了多矮,大家剛學(xué)KMP一定會(huì)有各種各樣的疑問(wèn),先留著登失,別期望立刻啃明白遏佣,第一遍了解大概思路,二刷的時(shí)候揽浙,再看KMP會(huì)好懂很多状婶。
或者說(shuō)大家可以放棄一刷可以不看KMP意敛,今天來(lái)回顧一下之前的算法題目就可以。
因?yàn)榇蠹宜惴芰€沒(méi)到膛虫,細(xì)扣很難的算法草姻,會(huì)把自己繞進(jìn)去,就算別人給解釋?zhuān)粫?huì)激發(fā)出更多的問(wèn)題和疑惑稍刀。所以大家先了解大體過(guò)程撩独,知道這么回事,等自己有算法基礎(chǔ)和思維了掉丽,在看多看幾遍視頻跌榔,慢慢就理解了。
題目鏈接/文章講解/視頻講解:https://programmercarl.com/0028.%E5%AE%9E%E7%8E%B0strStr.html
在一個(gè)串中查找是否出現(xiàn)過(guò)另一個(gè)串捶障,這是KMP的看家本領(lǐng)僧须。
就是我想的是,其實(shí)要用前綴表的意思就是說(shuō)项炼,唉担平,我這個(gè)模式串里面正好有前后綴相等的時(shí)候,那等我匹配到這字母進(jìn)行不下去的時(shí)候锭部,我就可以直接告訴你暂论,‘哎,前面有一部分和我現(xiàn)在相等了嗷拌禾,就算返回也別返回那么多啦取胎,省點(diǎn)功夫哈’,差不多是這么個(gè)意思吧湃窍。
上述為kmp算法的知識(shí)點(diǎn)講解闻蛀,不記得的時(shí)候就去重新看一下。
挺難且不熟您市,建議重刷
459.重復(fù)的子字符串(本題可以跳過(guò))
本題算是KMP算法的一個(gè)應(yīng)用觉痛,不過(guò)對(duì)KMP了解不夠熟練的話(huà),理解本題就難很多茵休。
我的建議是KMP和本題薪棒,一刷的時(shí)候,可以適當(dāng)放過(guò)榕莺,了解怎么回事就行俐芯,二刷的時(shí)候再來(lái)硬啃
題目鏈接/文章講解/視頻講解: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
移動(dòng)匹配
KMP算法
這個(gè)題目用的這個(gè)方法真的億點(diǎn)點(diǎn)玄妙,反正就是那種等量替換钉鸯,a = b, b = c,所以a = c的感覺(jué)泼各,神奇,需要多練亏拉。
關(guān)于*扣蜻、&的使用問(wèn)題:
字符串總結(jié)
比較簡(jiǎn)單,大家讀一遍就行
題目鏈接/文章講解:https://programmercarl.com/%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%80%BB%E7%BB%93.html
搜嘎及塘,所以C是沒(méi)有string的用法的莽使。
雙指針回顧
此時(shí)我們已經(jīng)做過(guò)10到雙指針的題目了,來(lái)一起回顧一下笙僚,大家自己也總結(jié)一下雙指針的心得
文章講解:https://programmercarl.com/%E5%8F%8C%E6%8C%87%E9%92%88%E6%80%BB%E7%BB%93.html