LeetCode演算法之最長回文子串 中心擴充套件演算法

2021-09-19 08:55:17 字數 543 閱讀 7042

一.題目

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

示例 1:

輸入: "babad"

輸出: "bab"

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

示例 2:

輸入: "cbbd"

輸出: "bb"

二.**及思想

class solution 

}return s.substring(start, end + 1);

}private int expandaroundcenter(string s, int left, int right)

return r - l - 1;

}}

我們觀察到回文中心的兩側互為映象.因此,回文可以從它的中心展開,並且只有2n-1個這樣的中心.

你可能會問,為什麼會是2n-1個,而不是n個中心?原因在於所含字母數為偶數的回文的中心可以出與兩字母之間(例如"abba"的中心在兩個'b'之間).

Leetcode之 最長回文數

給定乙個包含大寫字母和小寫字母的字串,找到通過這些字母構造成的最長的回文串。在構造過程中,請注意區分大小寫。比如 aa 不能當做乙個回文字串。回文串 對稱的字串 hash,首先統計字串中各個字元的出現次數,若為偶數則可進入回文串,若為奇數,則 1後可以進入回文串。若有奇數出現,則需要最後補乙個1作為...

leetcode解題之最長回文串

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

Leetcode之最長回文子串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 思路很簡單,首先想到若情況為回文字串奇數個字元時,中間的字元為軸。比較兩邊的字元是否相同。當回文串字元...