LeetCode 5. Longest Palindromic Substring
Posted Travelller
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 5. Longest Palindromic Substring相关的知识,希望对你有一定的参考价值。
求字符串的最长回文子串。
看了hint没看solution。开心。
暴力的思路是O(n^2) start - end pairs and O(n) palindromic checks。但是1000的复杂度只能采用O(n^2)的做法。所以目标是压缩cheak过程的复杂度。关键是:如何利用之前的判断结果?如:已知aba是回文,则xabax是回文,而xabay不是。但是因为复杂度,显然不能递归判断。所以采用回文中心为外层循环,回文长度为内层循环,构成O(n*n)解法。注意考虑解长度单双数问题。
class Solution { public: string longestPalindrome(string s) { int maxp=1; string ans=s.substr(0,1); int n=s.length(); for (int i=0;i<n;i++){ int l=i,r=i; while (l>0&&r<n+1&&s[l-1]==s[r+1]){ l--;r++; } if (r-l+1>maxp) { ans=s.substr(l,r-l+1); maxp=r-l+1; } }//for for (int i=0;i<n-1;i++){ int l=i,r=i+1; if (s[l]==s[r]){ while (l>0&&r<n+1&&s[l-1]==s[r+1]){ l--;r++; } if (r-l+1>maxp) { ans=s.substr(l,r-l+1); maxp=r-l+1; } } }//for return ans; } };
以上是关于LeetCode 5. Longest Palindromic Substring的主要内容,如果未能解决你的问题,请参考以下文章
leetcode--5. Longest Palindromic Substring
#Leetcode# 5. Longest Palindromic Substring
LeetCode题解 #5 Longest Palindromic Substring
[LeetCode] 5 Longest Palindromic Substring