題目描述
現在給你乙個字串s,請你計算s中有多少連續子串是回文串。
輸入
輸入包含多組測試資料。每組輸入是乙個非空字串,長度不超過5000。
輸出
對於每組輸入,輸出回文子串的個數。
樣例輸入
abaaa
樣例輸出43
思路
利用動態規劃的最大回文子串模型,dp[i][j]==1的就是乙個回文子串
#include
#include
#include
using
namespace std;
const
int maxn=
1010
;char s[maxn]
;int dp[maxn]
[maxn]
;//dp[i][j]==1表示s[i]到s[j]為回文子串
intmain()
}}//狀態轉移方程
for(
int l=
3;l<=len;l++)}
}//coutfor(
int i=
0;icout<}return0;
}
動態規劃 回文子串行個數
description 給定乙個字串行,求這個序列中回文子串行的個數。包含多組用例,每個用例為一行字串行 只含有字母和數字,不包含空格,字串長度小於100 輸出該字串行中回文子串行的個數。aaaa aaba 15 10 對於樣例2,有如下回文子串行 為便於觀察,我們另字串行為a1 a2 b a3 a...
動態規劃 最長回文子串
動態規劃 最長回文子串 題目描述 給出乙個字串s,求s的最長回文子串的長度 樣例 字串 patzjujztaccbcc 的最長回文子串為 atzjujzta 長度為9。動態規劃思想 令dp i j 表示s i 至s j 所表示的子串是否是回文子串,是則為1,不是為0。這樣根據s i 是否等於s j ...
最大回文子串 (動態規劃)
建立乙個布林型的二維陣列dp,其中dp i j 表示字串第i到j是否為回文。那麼邊界值其實很清楚了,字串長度為1的都為true。狀態轉換如何設定呢?當字串i所在的字元 字串j所在的字元,且它的內部 dp i 1 j 1 為回文,那麼dp i j 為true 又或者當字串i所在的字元 字串j所在的字元...