#include<bits/stdc++.h>
using namespace std;
string s;
int dp[100][100];
int main() {
cin>>s;
memset(dp,1e9,sizeof(dp));
int n=s.size();
for(int i=0;i<n;i++) dp[i][i]=1;
for(int len=2;len<=n;len++){
for(int l=0;l+len-1<n;l++){
int r=l+len-1;
if(s[l]==s[r]){
dp[l][r]=min(dp[l+1][r],dp[l][r-1]);
continue;
}
for(int k=l;k<r;k++){
dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]);
}
}
}
cout<<dp[0][n-1]<<"\n";
return 0;
}
1e9改成0x3f
2 个赞