每日一題 49 最長回文子串

2021-06-16 23:43:44 字數 963 閱讀 5900

子串:字串中連續的字元片段。

回文:正著看和反著看都一樣的字串。如abba和abbebba是回文,

bbab不是回文。

最長回文子串:對於字串的所有子串,找出是回文且最長的那乙個

舉例:(1)babcbabcbaccba的最長回文子串是abcbabcba

(2)bbbb的最長回文子串是其本身

這裡給出dp演算法,其屬於區間動態規劃。**

#include #include using namespace std;

//f[i][j]:表示字元i到字元j之間字串的是否是回文

//f[i][j] = true; str[i] == str[j] && f[i + 1][j - 1] = true;

//f[i][j] = false; 其他

//初始化

//f[i][i] = true;//單個字元認為是回文

//f[i][i - 1] = true;//區間擴充套件到兩個字元時,需要用到該狀態

//char strarr[101] = "babcbabcbaccba";

//char strarr[101] = "abab";

//char strarr[101] = "bbab";

char strarr[101] = "bbbb";

bool f[101][101];

bool ismatch(int i,int j)

else }

int dp(char strarr)

for (int i = 1;i < nlen;i++)

//遞推

for (int ncurlen = 2;ncurlen <= nlen;ncurlen++)

else

}} return nmaxlen;

}int main()

{ cout<

每日一題 最長回文子串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 取反轉字串,與原字串對比 例 aebcbe 第一大輪 第一小輪 aebcbe 與 ebcbea比較 第...

每日一題(2020 05 21)5 最長回文子串

難度 中等 給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 解法一 動態規劃 dp i,j 表示字串 s 的第 i 到 j 個字母組成的串是否為回文串,則有狀態...

每日一題 最長回文串

給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。將字串轉換為列表...