超级无语。。。
这么简单的题我可以WA 那么久
真的就是没AC 的命
好啦
首先,,一般来说
如果让字符串从第一位开始 ,是很容易写的,且不易错::
输入的时候 while(scanf("%s%s",sz1+1,sz2+1)!=EOF)
result[i][j] = 0 i=0 or j=0
result[i][j] = result[i-1][j-1] Xi= =Yj
result[i][j] = MAX(result[i-1][j], result[i][j-1]) Xi! =Yj
但是如果是从0位开始的呢, 初始化得时候要注意点::。。而不要单独的两个判断就赋值 0 或1 因为 ans [i][j]是表示字符从A从0到i与 B从0到j 之间的最大值,,OK ,
if(a[0]==b[0])ans[0][0]=1;
else ans[0][0]=0;
for( i = 1; i < m;i ++ )
{
if(a[0] == b[i]) ans[0][i] =1;
else ans[0][i]=ans[0][i-1];
}
for( i = 1; i < n;i ++ )
{
if(a[i] == b[0]) ans[i][0] =1;
else ans[i][0]=ans[i-1][0];
}