[codevs1520]回文字符串(dp)

来源:互联网 发布:程序员推荐用什么键盘 编辑:程序博客网 时间:2024/05/18 12:36

题目:

我是超链接

题解:

一上来的想法就是把这个字符串倒过来
按照我求的过程来说就是一个最长公共子序列(我也不知道是不是子串反正就是不连续的那个)
找到ta们能匹配上最长的序列,别的只能靠补了呗╮(╯▽╰)╭
用总长度减去就ok了
后方吐槽:没想到codevs也不兹瓷gets…….

代码:

#include <cstdio>#include <iostream>#include <cstring>using namespace std;char st[1005],st1[1005];int f[1005][1005];int main(){    int i,j;    scanf("%s",st);    int l=strlen(st);    for (i=0;i<l;i++) st1[l-i]=st[i];    f[0][0]=1;    for (i=1;i<=l;i++)      for (j=1;j<=l;j++)        if (st[i-1]==st1[j-1]) f[i][j]=f[i-1][j-1]+1;        else f[i][j]=max(f[i-1][j],f[i][j-1]);    printf("%d",l-f[l][l]);}
原创粉丝点击