P2268 DNA分子的最佳比对
#include<bits/stdc++.h>
using namespace std;
char a[1015],b[1015],s1[1015],s2[1015];
int l1,l2,f[1015][1015];
int maxx(int x,int y,int z)
{
if(x>y&&x>z)
return x;
if(y>x&&y>z)
return y;
return z;
}
int main()
{
cin>>a>>b;
l1=strlen(a);
l2=strlen(b);
for(int i=0; i<=l1; i++)
{
for(int j=0; j<=l2; j++)
f[i][j]=-2147483646;
}
f[0][0]=0;
for(int i=0; i<l1; i++)
s1[i+1]=a[i];
for(int i=0; i<l2; i++)
s2[i+1]=b[i];
for (int i = 0; i <= l1; i++)
{
if (s1[i] < 97) s1[i] += 32;
}
for (int i = 0; i <=l2; i++)
{
if (s2[i] < 97) s2[i] += 32;
}
for(int i=1; i<=l1; i++)
for(int j=1; j<=l2; j++)
{
f[i][j]=maxx(f[i-1][j]-2,f[i][j-1]-2,f[i-1][j-1]+(s1[i]==s2[j]));
}
cout<<f[l1][l2];
return 0;
}
有哪位大佬能告诉我哪里错了?