[LeetCode]—Longest Palindromic Substring 最长回文子串

来源:互联网 发布:交换机网络克隆的意思 编辑:程序博客网 时间:2024/05/18 14:27

Longest Palindromic Substring

 

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.


分析:

         最长回文子串,解法有几种,主要还是考察动态规划。

          设f(i,j),表示区间[i,j]是否回文,回文则为1,否则为0。f(i,j)的关系表示如下:

          

 代码:

 

class Solution{public:    string longestPalindrome(string s){       int len=s.length();       int f[len][len];       memset(f,0,len*len*sizeof(int));               int maxL=1,start=0;        for(int i=0;i<len;i++){           f[i][i]=1;           for(int j=0;j<i;j++){   // j<i            f[j][i]=(s[j]==s[i] && (j+1==i || f[j+1][i-1]));            if(f[j][i] && maxL<(i-j+1)){              maxL=i-j+1;              start=j;              }           }         }                return s.substr(start,maxL);    }};


0 0
原创粉丝点击