您的位置:首页 > 编程语言 > C语言/C++

Leetcode 5 - Longest Palindromic Substring

2015-12-21 18:02 295 查看
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.

1 - 简单的动态规划。

class Solution {
public:
string longestPalindrome(string s) {
string result = "";
for(int i=0;i<s.length();i++){
for(int j=0;j<2;j++){
string temp = palindrome(s,i,i+j);
if(temp.length()>result.length()){
result = temp;
}
}
}
return result;
}
private:
string palindrome(string s, int left, int right){
if(s[left]!=s[right]) return "";
//递推条件。如果一个子串已经是回文串,且这个子串左边的字符和右边的字符相同
//则此子串加上左右两个字符所得到的子串仍是回文串
while(s[left]==s[right] && left>=0 && right<=s.length()-1){
left--;
right++;
}
return s.substr(left+1,right-left-1);
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode c++