力扣(五) 最長回文子串

2021-10-05 12:28:13 字數 1174 閱讀 1873

題目描述

回文

什麼是回文?簡單說就是正著讀反著讀都一樣的字串。「abcba」「oooo」等

馬拉車演算法

這個演算法我也是看到一些題解才知道的,如果不知道可以去搜一下

或者看下面的鏈結文章,我也是看人家的

馬拉車演算法

解題

public

string

longestpalindrome

(string s)

//空字串直接返回

list<

string

> ls =

newlist

<

string

>()

; ls.

add(

"#")

;//字串首新增字元

int l,r ;

//左右標

int n = s.length;

for(

int i =

0; i < n; i++

)//abc——>#a#b#c#

int m = ls.count;

//新增#號後的的字元長度

int[

] p =

newint

[m];

//存放回文半徑

for(

int i =

1; i < m-

1; i++

)else}}

int len=0;

//存放最長半徑

int x =0;

for(

int k =

1; k < m -

1; k++)}

len = len >

0? len :1;

//半徑最小為1

int start =

(x - len)/2

;//回文開始下標

return s.

substring

(start, len)

;}

力扣題庫五 最長回文子串

題目 給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。示例 2 輸入 cbbd 輸出 bb 中心擴充套件法 class solution 可以用馬拉車演算法的思想來理解 a b b a 這...

力扣 最長回文子串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。示例 1 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。我的第一想法是暴力,然後才是中心擴充套件法 雖然知道應該用動態規劃,但是實現不出來 public string longestpalindr...

最長回文子串 力扣

5種解法 1.最長公共子串 2.暴力法 3.動態規劃 4.中心擴充套件法 5.manacher法 以下記錄大佬題解 演算法 什麼叫回文串?如果乙個字串正著讀和反著讀是一樣的,那它就是回文串。中心擴充套件演算法 我們觀察到回文中心的兩側互為映象。因此,回文可以從它的中心展開,並且只有 2n 1 個這樣...