Longest Palindromic Substring

 1 class Solution {
 2 public:
 3     string longestPalindrome(string s) {
 4      int min_len=0,max_len=1;
 5      int i,j,k;
 6      if(s.enpty)return "";
 7      if(s.size()==1)return s;
 8      for( i=0;i<s.size())
 9      {
10          if(max_len-i<=max_len/2)break;
11          j=i;
12          k=i;
13          if((s[k]==s[k+1])&&k<s.size()-1)k=k+1;
14          i=k+1;
15          while((s[j-1]==s[k+1])&&(j>0)&&(k<s.size()-1)){k++;j--;}
16          int new_len=k-j+1;
17          if(new_len>max_len){max_len=new_len;min_len=j;}
18          return s.substr(min_len,max_len);       //str.substr(startpos, length);其中 startpos 是起始字符的序号,length 是从 startpos 开始取的字符串长度(包括startpos )
19      }
20 
21 };

时间复杂度为o(n^2),仅仅避免了讨论奇数与偶数情况。

原文地址:https://www.cnblogs.com/daocaorenblog/p/4800103.html