題目描述
回文
什麼是回文?簡單說就是正著讀反著讀都一樣的字串。「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 個這樣...