fixed sequential to not read extra character and match examples
git-svn-id: svn://anubis/gvsu@173 45c1a28c-8058-47b2-ae61-ca45b979098e
This commit is contained in:
parent
7204622be6
commit
abe2707c1f
@ -44,12 +44,16 @@ bool readFile(char * fileName, vector<char> & v)
|
|||||||
ifstream in(fileName);
|
ifstream in(fileName);
|
||||||
if (!in.is_open())
|
if (!in.is_open())
|
||||||
return false;
|
return false;
|
||||||
while (!in.eof())
|
for(;;)
|
||||||
{
|
{
|
||||||
char chr;
|
char chr;
|
||||||
in >> chr;
|
in >> chr;
|
||||||
|
if (in.eof())
|
||||||
|
break;
|
||||||
v.push_back(chr);
|
v.push_back(chr);
|
||||||
|
cout << "0x" << hex << (int) chr << " (" << chr << ") ";
|
||||||
}
|
}
|
||||||
|
cout << endl;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,22 +62,22 @@ void similarityMatrix(vector<char> & s, vector<char> & t)
|
|||||||
{
|
{
|
||||||
int s_size = s.size();
|
int s_size = s.size();
|
||||||
int t_size = t.size();
|
int t_size = t.size();
|
||||||
int F[s_size][t_size];
|
int F[s_size+1][t_size+1];
|
||||||
int max_x = 0, max_y = 0, max_val = 0;
|
int max_x = 0, max_y = 0, max_val = 0;
|
||||||
for (int i = 0; i < t_size; i++) /* set first row to 0's */
|
for (int i = 0; i <= t_size; i++) /* set first row to 0's */
|
||||||
F[0][i] = 0;
|
F[0][i] = 0;
|
||||||
for (int i = 0; i < s_size; i++) /* set first column to 0's */
|
for (int i = 0; i <= s_size; i++) /* set first column to 0's */
|
||||||
F[i][0] = 0;
|
F[i][0] = 0;
|
||||||
for (int i = 1; i < s_size; i++)
|
for (int i = 1; i <= s_size; i++)
|
||||||
{
|
{
|
||||||
for (int j = 1; j < t_size; j++)
|
for (int j = 1; j <= t_size; j++)
|
||||||
{
|
{
|
||||||
/* Compute the value for the matrix */
|
/* Compute the value for the matrix */
|
||||||
F[i][j] =
|
F[i][j] =
|
||||||
max(
|
max(
|
||||||
max(
|
max(
|
||||||
F[i][j-1] - 2,
|
F[i][j-1] - 2,
|
||||||
F[i-1][j-1] + (eq(s[i], t[j]) ? 1 : -1)
|
F[i-1][j-1] + (eq(s[i-1], t[j-1]) ? 1 : -1)
|
||||||
),
|
),
|
||||||
max(
|
max(
|
||||||
F[i-1][j] - 2,
|
F[i-1][j] - 2,
|
||||||
@ -99,17 +103,15 @@ void similarityMatrix(vector<char> & s, vector<char> & t)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if 0
|
cout << "Matrix: " << s_size+1 << " x " << t_size+1 << endl;
|
||||||
cout << "Matrix: " << s_size << " x " << t_size << endl;
|
for (int i = 0; i <= s_size; i++)
|
||||||
for (int i = 0; i < s_size; i++)
|
|
||||||
{
|
{
|
||||||
for (int j = 0; j < t_size; j++)
|
for (int j = 0; j <= t_size; j++)
|
||||||
{
|
{
|
||||||
printf("%02d ", F[i][j]);
|
printf("%2d ", F[i][j]);
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
cout << "Maximum value is " << max_val << " at position ("
|
cout << "Maximum value is " << max_val << " at position ("
|
||||||
<< max_x << ", " << max_y << ")" << endl;
|
<< max_x << ", " << max_y << ")" << endl;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user