LeetCode 最長回文字串

2021-09-23 13:27:09 字數 1169 閱讀 8800

給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。

輸入: "babad"

輸出 : "bab"

注意 : "aba" 也是乙個有效答案。

輸入: "cbbd" 

輸出: "bb"

最簡單的辦法就是進行窮舉搜尋輸入字串的每乙個字串,並進行逐一判斷其是否為回文字串。

// cpp.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include #includeusing namespace std;

string longestpalindrome(string s);

int main()

string longestpalindrome(string s)

}if (flag == 1) true \\ false\\ \end\right." class="mathcode" src=""/>

如果是回文串為真,否則為假。

基本示例如下:

p(i, i) = true

這產生了乙個直觀的動態規劃解法,我們首先初始化一字母和二字母的回文,然後找到所有三字母回文,並依此類推…

#include#include#includeusing namespace std;

string longestpalindrome(string s);

int main()

string longestpalindrome(string s)

} for (int i = 0; i < m; i++)

for (int i = 0; i < n; i++)

} int start = 0;

int maxlength = 1;//預設為乙個字元

for (int i = 0; i < n; i++)

} } for (int l = 3; l <= n; l++)

}} }

return s.substr(start, maxlength);

}

LeetCode演算法5 最長回文字串

題目描述 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 問題評價 最重要在於判別函式的引入,可以簡化程式的結構 解題思路 邊界問題 1 對於空字串,...

最長回文字串

scanf s 輸入字串碰到空格或者tab就會停下來。此處可以使用fgets或者gets 另外注意標頭檔案cctype中的函式的巧妙使用,此處使用isalpha和toupper簡化了 此處列舉字串的中間位置,然後向倆邊擴充套件,節省了時間複雜度,注意向倆邊擴充套件時,奇數個和偶數個長度的區別。另外程...

最長回文字串

回文串定義 回文串 是乙個正讀和反讀都一樣的字串,比如 asddsa 或者 lovekevol 等等就是回文串。回文子串,顧名思義,即字串中滿足回文性質的子串。這裡我給出通過 列舉回文串的中間位置i,然後不斷向外擴充套件,直達有字元不相同。注意,這裡長度為奇數和偶數的處理方式是不一樣的。下面給出 這...