......离谱的错误,不知道为什么,看代码输出行
#include<bits/stdc++.h>
using namespace std;
int main(){
int f[55][55];
string a;
cin>>a;
int n=a.size();
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i==j){
f[i][j]=1;
}else{
f[i][j]=11451419;
}
}
}
for(int len=2;len<=n;len++){
for(int l=1;l<=n;l++){
int r=len+l-1;
if(r>n)break;
if(a[l]==a[r]){
f[l][r]=min(f[l+1][r],f[l][r-1]);
}
for(int k=l;k<r;k++){
f[l][r]=min(f[l][r],f[l][k]+f[k+1][r]);
}
}
}
cout<<f[1][n]-1;
return 0;
}