刷演算法題時遇到這道求最長回文子串行長度的題,因為其子序列不要求連續,跟普通求回文子串行不同,因此加以記錄方法一:二維動態規劃
public
class
question6_最長回文子串行_動態規劃
int[
]dp=
newint
[n][n]
;//單個字元的最長回文子串行長度為1
for(
int i=
0;i) dp[i]
[i]=1;
//第一層迴圈代表:兩個字元之間的距離
for(
int dist=
1;dist<=n-
1;dist++)}
if(str.
charat
(i)==str.
charat
(j))
dp[i]
[j]=dp[j]
[i]=innerlargest+2;
else
dp[i]
[j]=dp[j]
[i]=innerlargest;}}
system.out.
println
(dp[0]
[n-1])
;}}
方法二:遞迴
public
class
question6_遞迴解法
//遞迴計算最長回文子串行的長度
public
static
intsubstrlen
(string s)
int maxsubstrlen=1;
for(
int dist=
1;dist<=s.
length()
-3;dist++)}
}if(s.charat(0
)==s.
charat
(s.length()
-1))
return
2+maxsubstrlen;
else
return maxsubstrlen;
}}
最長回文子串 最長回文子串行
1.最長回文子串行 可以不連續 include include include include using namespace std 遞迴方法,求解最長回文子串行 intlps char str,int i,int j intmain include include include using n...
最長回文子串行 回文子串行個數
主要內容 1 什麼是回文?2 字元子串和字元子串行的區別 3 最長回文子串行的思路和 4 回文子串行個數的思路和 回文指的是正讀和反讀都一樣的字串,如aba,abba等 字元字串指的是字串中連續的n個字元 如palindrome中,pa,alind,drome等都屬於它的字串 而字元子串行指的是字串...
最長回文子串行
一.題目描述 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 二.如下 class solution def longestpalindrome se...