为什么明明跟第一个题解一样但是不对呢
查看原帖
为什么明明跟第一个题解一样但是不对呢
957060
2948195852D楼主2023/5/29 10:21
#include <stdio.h>
#include <string.h>
#define N 55
char s[N];
int f[N][N];
int min(int a,int b);
int main()
{
	scanf("%s",s+1);
	int n=strlen(s+1);
	memset(f,0x7F,sizeof(f));
	for(int i=1;i<=n;i++)
	{
		f[i][i]=1;
	}
	int i=1;
	for(int l=1;l<n;l++)
	{
		for(int j=l+1;j<=n;i++,j++)
		{
			if(s[i]==s[j])
			{
				f[i][j]=min(f[i+1][j],f[i][j-1]);
			}
			else
			{
				for(int k=i;k<j;k++)
				{
					f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]);
				}
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
		//	printf("%d ",f[i][j]);
		}
	}
	printf("%d",f[1][n]);
	return 0;
}
int min(int a,int b)
{
	return (a>b?b:a);
}
2023/5/29 10:21
加载中...