西故山 > 随笔 > 人生感悟 > 求解最长回文子串的长度

求解最长回文子串的长度

来源:网络转载 2017-08-18 04:24 编辑: www.xigushan.com 查看:

直接上代码:

class Palindrome { public: int getLongestPalindrome(string A, int n) { // write code here int rs=1; string str="#"; for(int i=0;i<n;i++){ str+=A[i]; str+="#"; } for(int j=1;j<str.size();j++) { int temp=1,start=j-1,end=j+1; while(end<=str.size()&&start>=0){ if(str[end]==str[start]){ end++; start--; temp++; } else break; } if(temp>rs) rs=temp; } return rs-1; } };
以上是我实现的,当然对于这一题有专门的算法来解决,即:Manacher算法,其原理我感觉有点复杂,这里先提出来,以备以后温习多看几遍。(其原理和源代码这里不再给出,百度一大片)