题目:
题解:
一上来的想法就是把这个字符串倒过来
按照我求的过程来说就是一个最长公共子序列(我也不知道是不是子串反正就是不连续的那个)
找到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]);
}