筆試覆盤 最長回文子串

2021-10-22 17:41:27 字數 900 閱讀 8192

回文串的經典題型:最長回文子串

回文串的長度可能是奇數,也可能是偶數,所以要分開考慮

abba: 回文中心是bb之間的間隙;aba:回文中心是b

為了簡單化問題我們可以用乙個字串中沒出現過的字元來進行填充,讓它都變成長度為奇數的串,如#a#b#b#a#(後面都以此為例)

然後再利用中心擴散的思想,求解

以str[0]為回文中心是,左邊擴散是邊界,右邊是a,故它能擴散0步

我們可以填這樣乙個表 ch

#a#b

#b#a

#index01

2345

678p

0101

4101

0觀察發現,最長回文子串就是p陣列的最大值

function

solution

(str)

return step;};

for(

let i =

0; i < len; i++

)return math.

max(

...p)

;}

擴充套件一下,如果是帶有*號的字串,*表示任意乙個字母,只需要修改一下中心擴散的判定條件即可

console.

log(

solution

('dab*b*acd'))

;function

solution

(str)

else

break;}

return step;};

for(

let i =

0; i < len; i++

)return math.

max(

...p)

;}

最長回文子串 最長回文子串行

1.最長回文子串行 可以不連續 include include include include using namespace std 遞迴方法,求解最長回文子串行 intlps char str,int i,int j intmain include include include using n...

最長回文子串 說一道筆試熱題 最長回文子串

leetcode 5 最長回文子串 輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。輸入 cbbd 輸出 bb 1.暴力法 public string longestpalindrome string s return ans 2.中心往兩邊擴充套件演算法你可能會問,為什麼會是 2n...

DTKJ筆試覆盤

10道選擇,2道程式設計 以下 的結果為 char archars hello autel char pchars archars cout下列 中test的建構函式和析構函式分別執行了幾次?test ptestarray new test 2 delete ptestarray 答 建構函式執行了...