代码
#include<bits/stdc++.h>
using namespace std;
int dp[55][55];
string s,n;
int main(){
cin>>s;
int L=s.size();
memset(dp,127,sizeof(dp));
for(int i=1;i<=L;i++)dp[i][i]=1;
for(int i=0;i<L;i++){
n[i+1]=s[i];
}
for(int len=2;len<=L;len++){
for(int i=1;i<=L-len+1;i++){
int l=i,r=i+len-1;
if(n[l]==n[r])dp[l][r]=dp[l+1][r];
else{
for(int j=l;j<r;j++){
dp[l][r]=min(dp[l][r],dp[l][j]+dp[j+1][r]);
}
}
}
}
cout<<dp[1][L];
return 0;
}
n 是转换后方便使用的。
但是在定义 n 的时候为什么字符串会 RE ,需要用字符数组?
字符串
字符数组