具體問題具體分析,往往思路就是從這裡來的。回文問題主要是判斷回文的時間複雜度太高,可以考慮dp、雜湊表、字典樹、字串雜湊、kmp、馬拉車等優化對回文的判斷。
336.回文對
有些問題可以先嘗試,說不定能通過,但是形如o(n!)或者指數級複雜度就可以不考慮了。
一般是子串行問題,迫不得已,沒辦法直接中心擴充套件。考慮類似lcs問題的區間dp思路
516.最長回文子串行
從某個位置向兩側擴充套件,避免暴力法列舉所有的子串。
5.最長回文子串
647.回文子串
一般用於解決字串是否相等的情況,找子串也比較有用,相當於預先儲存了字串。
字串雜湊,將字串看作base進製的數,其對應的10進製值就是其雜湊值,因為雜湊值很容易超出範圍,所以需要模乙個很大的質數,一般來講還是不容易雜湊衝突的。一般來說,我們選取乙個大於字符集大小(即字串中可能出現的字元種類的數目)的質數作為base,再選取乙個在字串長度平方級別左右的質數作為 mod,產生雜湊碰撞的概率就會很低。
214.最短回文串
似乎很多問題都能用這個,但是我知難而退了。。。
214.最短回文串
LeetCode 回文串專題
leetcode 5.最長回文子串 leetcode 680.驗證回文字串 leetcode 5.最長回文子串 給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb ...
LeetCode 驗證回文串
題目描述 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false class solut...
Leetcode 最短回文串
題目鏈結 只是在馬發車演算法基礎上改動了最後的處理方式,因為這道題限制在字串前面新增字元,所以必須回文子串的起始位置在s字串的開頭才能。class solution string t for int i 0 ii else while t i p i 1 t i p i 1 if i p i r c...