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);
}

 

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