05最長回文子串

2021-10-02 09:00:16 字數 1802 閱讀 3963

參考文獻

給定乙個字串s,找到s中最長的回文子串

example: 輸入: "babad"

return :

輸出: "bab","aba" 也是乙個有效答案

中心擴充套件法

回文中心的兩側互為映象。因此,回文可以從他的中心展開,並且只有 2n-1 個這樣的中心(乙個元素為中心的情況有 n 個,兩個元素為中心的情況有 n-1 個)

class solution 

return max_str;

}};

c++ 語法

string 切片操作

string substr(int pos = 0,int n ) const;
引數說明:

引數1:pos是必填引數

引數2:n是可引數,表示取多少個字元,不填表示擷取到末尾

函式功能返回從pos開始的n個字元組成的字串,原字串不被改變

string center_spread(string s ,int size , int start, int end)

{ while(start>=0 && endpython 實現class

solution()

:def

center_spread

(self,s,size,left,right)

: l,r=left,right

while l>=

0and r==s[r]

: l-=

1 r+=

1return s[l+

1:r]

,r-l-

1def

longestpalindrome

(self, s)

: length=

len(s)

if length==0:

return

"" max_len=

1#至少是一

max_str=s[0]

for i in

range

(length)

: odd_str,odd_len=self.center_spread(s,length,i,i)

even_str,even_len=self.center_spread(s,length,i,i+1)

if odd_len>even_len:

cur_len=odd_len

cur_str=odd_str

else

: cur_len=even_len

cur_str=even_str

if cur_len>max_len:

max_len=cur_len

max_str=cur_str

return max_str

if __name__==

"__main__"

: s_test=

"babad"

sol=solution(

) result=sol.longestpalindrome(s_test)

print

(result)

c++ prime 第5版

c++ 標準庫

devdocs

c++擷取字串

leetcode05最長回文子串

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。看到一道題沒什麼思路,首推 無腦暴力,寫出來再說 public string longestpalindrome string s return s....

leetcode 05 最長回文子串

leetcode題目鏈結 題目要求 求最長回文子串。這題 我的第一思路是 從頭對每乙個節點進行遍歷 以當前節點向兩邊擴充套件,一直記錄 更新當前的最大長度。但是 奇數,偶數回文的不確定性 的問題沒有解決 奇偶不同情況統一 如果是偶數個,傳入 個相鄰節點的下標 如果是奇數個,傳入的 個引數相同 參考部...

力扣 05最長回文子串

1.暴力法 include 回文數.hpp include include include using namespace std class solution 左邊 右邊 left right return true public string longestpalindrome string s...