#include<iostream>
#include<algorithm>
#include<cstring>
#include<stdlib.h>
#include<stdio.h>
#define MAXN 5010
#define inf 0x3f3f3f
using namespace std;
typedef long long ll;
#define maxn 6100
ll ans=0,cnt,dp[maxn];
char ss[maxn];
int check(int x,int y){
while(x<y){
if(ss[x]==ss[y]){
x++,y--;
}
else{
return 0;
}
}
return 1;
}
int main(){
scanf("%s",ss+1);
ll len=strlen(ss+1);
for(int i=0;i<=len+1;i++) dp[i]=inf;
dp[0]=0;
for(int i=1;i<=len;i++){
for(int j=0;j<i;j++){
if(check(j+1,i)){
dp[i]=min(dp[i],dp[j]+1);
// cout<<"i= "<<i<<"j= "<<j<<"dp "<<dp[i]<<endl;
}
}
}
// for(int i=0;i<=len;i++) cout<<dp[i]<<endl;
cout<<dp[len]<<endl;
return 0;
}
2018NJUPT第三场排位赛 松松的字符串(dp)
猜你喜欢
转载自blog.csdn.net/qq_37360631/article/details/81586219
今日推荐
周排行