最长回文子串

来源:互联网 发布:淘宝店铺进货渠道 编辑:程序博客网 时间:2024/06/14 09:21
/*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.*/#include <string>#include <iostream>class Solution{public:std::string longestPalindrom(std::string s){if(s.size()==0)return s;int l=-1,r=-1;for(int i=0;i<s.size();++i){int ll=i-1;int rr=i+1;int lll=i;int rrr=i+1;while(ll>=0 && rr<s.size() && s[ll]==s[rr]){--ll;++rr;}while(lll>=0 && rrr<s.size() && s[lll]==s[rrr]){--lll;++rrr;}if(rr-ll>r-l){r=rr;l=ll;}if(rrr-lll>r-l){r=rrr;l=lll;}}if(r-l-1>0)return s.substr(l+1,r-l-1);return std::string();}};int main(int argc,char* argv[]){std::string str("abadcefabcdcba");Solution s;std::cout<<s.longestPalindrom(str)<<std::endl;return 0;}

原创粉丝点击