题解 | 最长回文子串
/** * 一种简单实现的方法:时间复杂度O(n²) */ int getLongestPalindrome(char* A ) { // write code here int maxLenth = 0; int i,j,left,rigth = 0; int offset = 0; for(i = 0; i < strlen(A); i++){ for(j = i; j < strlen(A); j++){ //回文子串即轴对称字符串 // a b b b a // ⬇ | ⬇ //left→ | ←rigth left = i; rigth = j; while(A[left] == A[rigth]){ rigth--; left++; } //判断左右指针是否成功越过中心点,是,则为回文子串 if(left >= rigth){ offset = j - i + 1; if(offset > maxLenth){ maxLenth = offset; //更新回文子串长度 } } } } return maxLenth; }