C++ leetcode 5. 最長迴文子串 給定一個字符串 s,找到 s 中最長的迴文子串。你可以假設 s 的最大長度爲 1000。

一、思路

     從第二個遍歷到最後一個,然後每次遍歷從中間往兩邊找,這樣可以找到所有的迴文串

string longestPalindrome(string s) {
	int left;
	int right;
	int maxLength = 1;
	int maxLeft = 0;
	for (int i = 1; i < s.size(); i++) {
		left = i - 1;
		if (s[left] == s[i]) {
			solve(left, i, s, maxLength, maxLeft);
		}
		right = (i == s.size() - 1) ? i : i + 1;
		solve(left, right, s, maxLength, maxLeft);

	}
	return s.substr(maxLeft, maxLength);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章