输入样例1:
ABCBA
输出样例1:
0
输入样例2:
ABDCDCBABC
输出样例2:
3
答案:
#include<bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
#define mem(a,b) memset(a,b,sizeof(a))
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
const int N = 1111;
using namespace std;
string s;
int dp[N][N];
void solve(){
cin>>s;
int len=s.size();
for(int i=1;i<=len;i++){
for(int l=0;l+i-1<len;l++){
int r=l+i-1;
if(i==1) dp[l][r]=1;
else{
if(s[l]==s[r]) dp[l][r]=dp[l+1][r-1]+2;
dp[l][r]=max(dp[l][r],dp[l][r-1]);
dp[l][r]=max(dp[l][r],dp[l+1][r]);
}
}
}
cout<<len-dp[0][len-1]<<endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}