lcs
שלום לכולם,
אני מנסה ליישם את הקוד של lcs ב c# אבל התוצאה שגוייה (מחשב לי את סכום אורכי כל התת סדרות המשותפות)
להלן הקוד:
public int LCS_lenghth(int i, int j)
{
if (L[i, j] == 0)
{
if (i == 0 || j == 0)
{
if (s1 == s2[j])
return ++L[i, j];
else
return 0;
}
else if (s1 == s2[j])
L[i, j] = 1 + LCS_lenghth(i - 1, j - 1);
else
{
x = LCS_lenghth(i - 1, j);
y = LCS_lenghth(i, j - 1);
L[i, j] = max(x, y);
}
}
return L[i, j];
}
}
מישהו יכול לעזור?
שלום לכולם,
אני מנסה ליישם את הקוד של lcs ב c# אבל התוצאה שגוייה (מחשב לי את סכום אורכי כל התת סדרות המשותפות)
להלן הקוד:
public int LCS_lenghth(int i, int j)
{
if (L[i, j] == 0)
{
if (i == 0 || j == 0)
{
if (s1 == s2[j])
return ++L[i, j];
else
return 0;
}
else if (s1 == s2[j])
L[i, j] = 1 + LCS_lenghth(i - 1, j - 1);
else
{
x = LCS_lenghth(i - 1, j);
y = LCS_lenghth(i, j - 1);
L[i, j] = max(x, y);
}
}
return L[i, j];
}
}
מישהו יכול לעזור?