首页 > 代码库 > 回文串的长度

回文串的长度

动态规划:用f[i][j]表示s[i~j]字符串是否是回文字符串。

技术分享

int main(){    string str;    cin>>str;    int n=str.size();    int max_len=0;    int start=0;    vector<vector<int>> f(n,vector<int>(n));    for(int i=0;i<n;i++)    {         f[i][i]=true;         for(int j=0;j<i;j++)         {               f[j][i]=(s[i]==s[j])&&((i==j+1)||f[j+1][i-1]);               if(f[j][i]&&(i-j+1>max_len))                {                       max_len=i-j+1;                       start=j;                }          }          cout<<s.substr(start,max_len)<<endl;    }}                                                                                        

 

回文串的长度