力扣 05最長回文子串

2021-09-29 08:58:08 字數 950 閱讀 6918

1.暴力法

#include "回文數.hpp"

#include #include #include using namespace std;

class solution

//左邊++,右邊--

left++;

right--;

}return true;

}public:

string longestpalindrome(string s)

//定義

int maxlen =1;

//獲得字串s中 從第0位開始的長度為1的字串

string res = s.substr(0, 1);

//遍歷

for(int i=0;imaxlen && valid(s,i,j))}}

return res;

}};

時間複雜度:o(n3)

空間複雜度:o(1)

2.中心擴散法

#include #include #include using namespace std;

class solution else

}// 這裡要小心,跳出 while 迴圈時,恰好滿足 s.charat(i) != s.charat(j),因此不能取 i,不能取 j

return s.substr(i + 1, j - i - 1);

}public:

string longestpalindrome(string s)

int maxlen = 1;

string res = s.substr(0, 1);

// 中心位置列舉到 len - 2 即可

for (int i = 0; i < size - 1; i++)

}return res;

}};

力扣 最長回文子串

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

最長回文子串 力扣

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

力扣 最長回文子串 C

給定乙個字串 s,找到 s 中最長的回文子串。你可以假設 s 的最大長度為 1000。輸入 babad 輸出 bab 注意 aba 也是乙個有效答案。輸入 cbbd 輸出 bb include using namespace std define max a,b a b a b define min...