給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1:
輸入: "babad"示例 2:輸出: "bab"
注意: "aba" 也是乙個有效答案。
輸入: "cbbd"輸出: "bb"
思路很簡單,首先想到若情況為回文字串奇數個字元時,中間的字元為軸。比較兩邊的字元是否相同。當回文串字元為偶數時,剛開始假想它以空氣為軸,則找不到其他字元的下標。於是想到在每個字元包括兩邊都插入乙個特殊字元比如(),這樣構成的回文字串一定是奇數長度。也就是一定存在中間的某個字元,使得兩邊以它(可能是特殊字元也可能原字串中的字元)為軸,並且此字串的兩邊都以結尾。
public static void longestpalindrome(string s)
}return s.substring(start, end + 1);
}private int expandaroundcenter(string s, int left, int right)
return r - l - 1;
}}
略 LeetCode動態規劃之最長回文子串
給定乙個字串s,找到s中最長的回文子串。你可以假設s的最大長度為 1000。輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。輸入 cbbd 輸出 bb 首先,必須要明確最長回文子串的含義,簡單來說就是 從前往後讀和從後往前讀 是一樣的,按照我們動態規劃解題3步驟 定義陣列元素含義,找...
LintCode之最長回文子串
給出乙個字串 假設長度最長為1000 求出它的最長回文子串,你可以假定只有乙個滿足條件的最長回文串。樣例 給出字串 abcdzdcab 它的最長回文子串為 cdzdc public class solution if s.length 1 stringbuffer sb new stringbuff...
leetcode解題之最長回文串
給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。注意 假設字串的長度不會超過 1010。示例 1 輸入 abccccdd 輸出 7 解釋 我們可以構造的最長的回文串是 dccaccd 它的長度是 7。基本思...