思路就是区间dp,结果70分
#include<bits/stdc++.h>
using namespace std;
int n,dp[51][51];
char c[51];
int main(){
scanf("%s",c);
n=strlen(c);
for(int len=0;len<n;len++){
for(int i=0;i<n-len;i++){
int j=i+len;
dp[i][j]=1e9;
int std=c[i];
int l=i,r=j;
while(l<=r&&c[l]==std) l++;
while(l<=r&&c[r]==std) r--;
dp[i][j]=min(dp[i][j],dp[l][r]+1);
std=c[j];
l=i,r=j;
while(l<=r&&c[l]==std) l++;
while(l<=r&&c[r]==std) r--;
dp[i][j]=min(dp[i][j],dp[l][r]+1);
}
}
printf("%d",dp[0][n-1]);
return 0;
}