注意不是回文子串,子串必須是連續!
dp[i]
[j]表示字串從i到j裡最長的回文子串行長度
於是
當s[i]
==s[j]時 dp[i]
[j]=dp[i+1]
[j-1]+
2當s[i]
!=s[j]時,dp[i]
[j]=
max(dp[i+1]
[j],dp[i]
[j-1
])
最後返回dp[0][len-1]即可,下面展示自頂向下和自底向上兩種**。
**(自頂向下):
int
longestpalindromesubseq
(string s)
else}}
return dp[0]
[size-1]
;}
**(自底向上):
int
longestpalindromesubseq
(string s)
else}}
return dp[0]
[size-1]
;}
LeetCode演算法題 回文數
回文數,即乙個整數,將它各位上的數字從左到右反過來得到的數字依然等於原來的整數。如1221反過來還是1221,所以它是回文數。而 11反過來是11 所以不是回文數。那麼如何判斷乙個整數是不是回文數?將數字轉換為字串,然後反轉字串,再與之前的比較看是否相等。將整數最高位的數字取出,和整數末位的數比較是...
leetcode刷題 最長回文子串
看了一下題解,還有很多種方法,比如動態規劃,但是看了乙個下午也沒看太懂。所以就先把暴力破解弄懂吧。我這個菜雞,還要多多努力啊。主要問題在,不知道怎麼列舉字串的所有子串,題解中使用的是雙指標辦法,固定左指標,右指標移動得到全部的子串。最後,進行回文字串的驗證時,也是採用的雙指標方法來進行驗證。因此雙指...
LeetCode第409題最長回文串
題目 題目描述 給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長...