[Leetcode] Longest Palindromic Substring
2015-03-30 22:04
447 查看
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
最长回文,对于每一个字符从中间向两边找,注意分奇数与偶数两种情况。总的时间复杂度为O(n^2)。另外Manacher算法复杂度为O(n),Manacher算法好复杂的样子,智商捉急,得好好消化一下。先贴个简单的吧。
最长回文,对于每一个字符从中间向两边找,注意分奇数与偶数两种情况。总的时间复杂度为O(n^2)。另外Manacher算法复杂度为O(n),Manacher算法好复杂的样子,智商捉急,得好好消化一下。先贴个简单的吧。
class Solution { public: int getLPS(const string &s, int idx1, int idx2) { while (idx1 >= 0 && idx2 < s.length() && s[idx1] == s[idx2]) { --idx1; ++idx2; } return idx2 - idx1 - 1; } string longestPalindrome(string s) { if (s.length() < 2) return s; int lps = -1, lps1, lps2, pos; for (int i = 0; i < s.length(); ++i) { lps1 = getLPS(s, i, i); lps2 = getLPS(s, i, i + 1); if (lps1 > lps || lps2 > lps) { pos = i; lps = max(lps1, lps2); } } if (lps & 0x1) return s.substr(pos-(lps-1)/2, lps); else return s.substr(pos-(lps-2)/2, lps); } };
相关文章推荐
- 【Leetcode】(5)Longest Palindromic Substring(Medium)
- LeetCode: Longest Palindromic Substring
- LeetCode:Longest Palindromic Substring 最长回文子串
- 5. Longest Palindromic Substring LeetCode题解
- [LeetCode] 5. Longest Palindromic Substring
- LeetCode 5 - Longest Palindromic Substring
- LeetCode:Longest Palindromic Substring
- LeetCode_5_LongestPalindromicSubstring(最长回文子序列)
- Leetcode [Longest Palindromic Substring]
- [LeetCode]-005-Longest Palindromic Substring
- Leetcode -- Longest Palindromic Substring
- [Leetcode]Longest Palindromic Substring
- Leetcode 之Longest Palindromic Substring(30)
- LeetCode:Longest Palindromic Substring
- LeetCode第五题(Longest Palindromic Substring)
- leetcode--Longest Palindromic Substring
- leetcode 5(Longest Palindromic Substring)golang实现
- [LeetCode] Longest Palindromic Substring
- 开始刷题leetcode day47: Longest Palindromic Substring
- Leetcode日志--LongestPalindromicSubstring