【題目】
給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。
輸入: 「babad」
輸出: 「bab」
注意: 「aba」 也是乙個有效答案。
很明顯,暴力法將選出所有子字串可能的開始和結束位置,並檢驗它是不是回文。
【**】
public string longestpalindrome1
(string s)
else}if
(left < right)
else
if(l < temp)}}
return s.
substring
(resleft,resright+1)
;}
/**
* 動態規劃高階:二維陣列和公式
* dp[i][j] 表示 i到j是回文子串
* dp[i+1][j+1]是回文子串的條件:dp[i][j]是回文並且s(i+1)==s(j+1)
* dp[i][i+1]是回文,只需要,s(i)==s(i+1)
* 邊界:所有的單字元以及二回文子串
* dp[i][i] 全部是回文子串
* 判斷dp[i][i+1]是不是回文,條件:s(i)==s(i+1)
* */
這產生了乙個直觀的動態規劃解法,我們首先初始化一字母和二字母的回文,然後找到所有三字母回文,並依此類推…
【**】
public string longestpalindrome
(string s)
}//i表示檢索的子串長度,等於3表示先檢索長度為3的子串
for(i=
3; i<=len; i++)}
}}return s.
substring
(l,r+1)
;}
這裡有幾個需要注意的地方: 最長回文子串 最長回文子串行
1.最長回文子串行 可以不連續 include include include include using namespace std 遞迴方法,求解最長回文子串行 intlps char str,int i,int j intmain include include include using n...
最長回文子串
描述 輸入乙個字串,求出其中最長的回文子串。子串的含義是 在原串連續出現的字串片段。回文的含義是 正著看和倒著看是相同的,如abba和abbebba。在判斷是要求忽略所有的標點和空格,且忽略大小寫,但輸出時按原樣輸出 首尾不要輸出多餘的字串 輸入字串長度大於等於1小於等於5000,且單獨佔一行 如果...
最長回文子串
輸入乙個字元,求出其中最長的回文子串。子串的含義是 在元串中連續出現的字串片段。回文的含義是 正看和倒看相同,如abba和yyxyy,在判斷時候應該忽略所有的空格和標點符號,且忽略大小寫,但輸出應該保持原樣,輸入的字元長度不超過5000,且佔據單獨一行,輸出最長的回文子串 如有多個,輸出,起始位置最...