1.Go
方法1:
方法2:
2.C++
方法1:
//回文子串有两种形式:aba abba 所以分两种遍历方式进行遍历 分别起始为a向两边扩散 以及起始为aa向两边扩散
class Solution { public: int maxi=-1,maxj=-1,maxlen=-1; void findres(string&s,int idx,int start){ int l=idx,r=idx; if (start==2) l=idx-1; while(l>=0 && r<s.size()){ if (s[l]==s[r]){ if (maxlen<r-l+1){maxlen=r-l+1;maxi=l;maxj=r;} l--; r++; }else break; } } string longestPalindrome(string s) { //有两种遍历方式 一种是以1为 s.insert(s.begin(),'#'); for (int i=1;i<s.size();i++){ findres(s,i,1); findres(s,i,2); } return s.substr(maxi,maxlen); } };
方法2: