『中心拓展法』题解 | #最长回文子串#
最长回文子串
http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
显示的分奇数和偶数
//奇数 int odd( string A,int n, int Left, int Right ) { while( Left>=0 && Right<n && A[Left]==A[Right] ) { --Left; ++Right; } return Right-Left-1; } //偶数 int even( string A,int n, int Left, int Right ) { while( Left>=0 && Right<n && A[Left]==A[Right] ) { --Left; ++Right; } return Right-Left-1; } class Solution { public: int getLongestPalindrome(string A, int n) { // write code here if( n<=1 ) return n; int res=1;//至少为1 for( int mid=0; mid<n ; ++mid ) { int Left=mid,Right=mid; int oddNum=odd( A, n, mid, mid); res=max( res, oddNum ); int evenNum=even( A, n, mid, mid+1); res=max( res, evenNum ); } return res; } };