LeetCode Longest Palindromic Substring
2014-06-13 20:09
330 查看
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.
遍历整个S,对于位置i,我们找寻以i为中心及i,i+1为中心的回文字符串,存储当前最长的回文字符串,遍历完即为答案。
考虑到如果整个S是一个回文字符串,那么按顺序遍历的话,我们最少需要遍历到S.length()/2的位置。
我们从S的中间开始向前向后遍历,向前遍历,到小标<当前最长回文字符串长度的一半就可,向后遍历,剩余的子字符串长度小于当前最长回文串长度的一半即可。
S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
遍历整个S,对于位置i,我们找寻以i为中心及i,i+1为中心的回文字符串,存储当前最长的回文字符串,遍历完即为答案。
考虑到如果整个S是一个回文字符串,那么按顺序遍历的话,我们最少需要遍历到S.length()/2的位置。
我们从S的中间开始向前向后遍历,向前遍历,到小标<当前最长回文字符串长度的一半就可,向后遍历,剩余的子字符串长度小于当前最长回文串长度的一半即可。
class Solution { public: string findPalindromeInIndex(string s,int i,int j){ string res; if(i<0||i>=s.length()||j<0||j>=s.length())return res; while(s[i]==s[j]&&i>=0&&j<s.length()){i--;j++;} i++;j--; res=s.substr(i,j-i+1); return res; } string longestPalindrome(string s) { string slong="",temp; if(s.length()==0)return slong; int k=s.length()/2; for(int i=k;i>=0;i--){ if(i<slong.length()/2)break; temp=findPalindromeInIndex(s,i,i); if(slong.length()<temp.length()){ slong=temp; } temp=findPalindromeInIndex(s,i-1,i); if(slong.length()<temp.length())slong=temp; } for(int i=k;i<s.length();i++){ if(s.length()-i-1<slong.length()/2)break; temp=findPalindromeInIndex(s,i,i+1); if(slong.length()<temp.length())slong=temp; temp=findPalindromeInIndex(s,i+1,i+1); if(slong.length()<temp.length())slong=temp; } return slong; } };
相关文章推荐
- LeetCode 5. Longest Palindromic Substring(最长回文连续子串)
- leetcode 005 —— Longest Palindromic Substring
- leetcode[5]Longest Palindromic Substring
- 【LeetCode】Longest Palindromic Substring
- leetcode第五题--Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- [Leetcode]_5 Longest Palindromic Substring
- Longest Palindromic Substring - LeetCode
- LeetCode 5. Longest Palindromic Substring
- Leetcode--Longest Palindromic Substring(最长回文子序列)
- Java [leetcode 5] Longest Palindromic Substring
- leetcode 73: Longest Palindromic Substring
- leetcode 5: Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- leetcode05- Longest Palindromic Substring之Java版本
- Leetcode-Longest Palindromic Substring
- LeetCode(5) Longest Palindromic Substring
- Leetcode: Longest Palindromic Substring
- leetcode - Longest Palindromic Substring