動態規劃 統計回文子串個數

2021-10-22 11:46:18 字數 724 閱讀 7607

題目描述

現在給你乙個字串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所在的字元...