leetcode 005 最长回文子串
2018-12-23 21:06
393 查看
思路和003很相似,003是找最长的不重复序列,并返回长度;
对于外循环的每一个i,判断它后面的每一个j,是否能使得s【i】到s【j】构成回文序列;
如果构成了回文序列,count保存此时的回文序列长度,out保存的是程序到现在为止、已经得到的最大长度;
如果count>out了,out=count,并让res保存现在这个更长一点的回文字符串;
当然也可能根本就没有回文串,最后判断一下即可;
需要注意的是,如果j到了某一位置,s【i】到s【j】不构成回文序列,此时j仍要++,继续判断,比如“aba”;
代码:
class Solution { public: static string longestPalindrome(string s) { int out = 0, i = 0, j, count = 0, m,n; string res; if (!s.size()) return res; for (i = 0; i < s.size() - 1; i++) { count = 1; j = i + 1; while (j < s.size()) { m = i,n=j; while (m<=n) { if (s[m] == s[n]) m++,n--; else break; } if (m > n) { count = j - i + 1; if (count > out) { out = count; m = i, n = j; res.clear(); for (m; m <= n; m++) res += s[m]; } } j++; } } if (!out) res +=s[0]; return res; } };
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【005-Longest Palindromic Substring(最长回文子串)】
- leetcode:最长回文子串
- leetcode (5) - Longest Palindromic Substring 最长回文子串
- leetcode Longest Palindromic Substring最长回文子串
- LeetCodeOJ_5_m_Longest Palindromic Substring(最长回文子串)
- LeetCode 5. Longest Palindromic Substring(最长回文子串)
- LeetCode_5---Longest Palindromic Substring (求最长回文子串)
- LeetCode-Longest Palindromic Substring-最长回文子串-Manacher
- LeetCode-最长回文子串
- Longest Palindromic Substring [LeetCode] 最长回文子串
- LeetCode | Longest Palindromic Substring(最长回文子串)
- leetcode-5. Longest Palindromic Substring(寻找最长回文子串)
- leetcode编程题(5)Longest Palindromic Substring(最长回文子串)【最全解法】
- 【LeetCode004-005算法/编程练习C++】--两个数组的中间数,找出最长回文子串
- 最长回文子串-LeetCode 5 Longest Palindromic Substring
- LeetCode第5题:最长回文子串
- leetcode练习题5--最长回文子串
- LeetCode Longest Palindromic Substring(最长回文子串)
- [LeetCode] 5. Longest Palindromic Substring 最长回文子串
- LeetCode5. Longest Palindromic Substring(最长回文子串:Manacher算法)