#include<bits/stdc++.h>
using namespace std;
const int maxn=1000;
char s[maxn+10];
int d[maxn+10][maxn+10];
int dp(int i,int j){
if(i>=j)return 0;
int &ans=d[i][j];
if(ans>=0)return ans;
if(s[i]==s[j])return ans=dp(i+1,j-1);
return ans=min(dp(i+1,j),dp(i,j-1))+1;
}
int main(){
memset(d,-1,sizeof(d));
scanf("%s",s+1);
int n=strlen(s+1);
cout<<dp(1,n);
}
p-7-21回文串问题
猜你喜欢
转载自blog.csdn.net/qq_43192537/article/details/103681091
今日推荐
周排行