最長回文子串(區間dp)

2021-10-07 05:29:56 字數 637 閱讀 8645

輸入乙個字串str,輸出str裡最長回文子串的長度。

回文串:指aba、abba、cccbccc、aaaa這種左右對稱的字串。

串的子串:乙個串的子串指此(字元)串中連續的一部分字元構成的子(字元)串

例如 abc 這個串的子串:空串、a、b、c、ab、bc、abc

輸入str(str的長度 <= 1000)

輸出最長回文子串的長度l。

daabaac

區間dp,如果dp[i][j]代表區間中最長回文子串長度的話,就無法進行狀態轉移,但可以用dp[i][j]代表區間是否是回文串

#include

#include

using

namespace std;

const

int n =

1005

;int dp[n]

[n];

char s[n]

;int

main

(void)if

(dp[i]

[j]==1)

ans =

max(ans, len);}

} cout << ans << endl;

return0;

}

DP訓練 最長對稱子串(回文串,區間dp)

l2 008 最長對稱子串 25 分 對給定的字串,本題要求你輸出最長對稱子串的長度。例如,給定is pat tap symmetric?最長對稱子串為s pat tap s,於是你應該輸出11。輸入格式 輸入在一行中給出長度不超過1000的非空字串。輸出格式 在一行中輸出最長對稱子串的長度。輸入樣...

DP 最長回文子串

dp問題,最長回文子串 最長回文子串問題指的是在乙個字串中,是回文子串的長度的最大值.這裡的回文子串是連續的.如字串 patzjujztaccbcc 他的最長回文子串是 atzjujzta 長度為9,當然它還有其他回文子串如 ccbcc 但是長度不夠長.這類問題似乎有多種解法,複雜度從o n 3 到...

最長回文子串DP

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 分析 dpdp j i 表示從j到i的子串 若dp j i 為回文串,則dp j 1 i 1 必然回文,...