题目:1222. 密码脱落
思路:大佬思路,这是一道区间dp的题,判断边界是否相等,因为求的是最小,所以要先把f置为无穷大
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<double,double>PII;
const int N=(1<<20)+10;
const int mod=1000000009;
char a[1010];
int f[1010][1010];
int main(){
scanf("%s",a+1);
int len_a=strlen(a+1);
memset(f,0x3f,sizeof f);
for(int i=len_a;i>=1;i--){
for(int j=i;j<=len_a;j++){
if(i==j) f[i][j]=0;
else{
if(a[i]==a[j]){
if(i==j-1){
f[i][j]=0;
}else{
f[i][j]=min(f[i][j],f[i+1][j-1]);
}
}else{
f[i][j]=min(f[i][j],f[i+1][j]+1);
f[i][j]=min(f[i][j],f[i][j-1]+1);
}
}
}
}
cout<<f[1][len_a];
return 0;
}