最长回文子序列个数

memset(dp,0,sizeof(dp));
        for(int i=0;i<len;i++) dp[i][i]=1;
        for(int i=1;i<len;i++)
        {
            int temp=0;
            for(int j=0;j+i<len;j++)
            {
                if(th[j]==th[j+i]) temp=dp[j+1][j+i-1]+2;
                else temp=max(dp[j+1][j+i],dp[j][j+i-1]);
                dp[j][j+i]=temp;
            }
        }
        printf("%d\n",dp[0][len-1]);

猜你喜欢

转载自www.cnblogs.com/Leozi/p/10835689.html