//动态规划查找两个字符串最大子串
public static string lcs(string word1, string word2)
{
int max = 0;
int index = 0;
int[,] nums = new int[word1.Length + 1,word2.Length+1];
for (int i = 0; i <= word1.Length; i++)
{
for (int j = 0; j <= word2.Length; j++)
{
nums[i,j] = 0;
}
}
for (int i = 0; i <= word1.Length; i++)
{
for (int j = 0; j <= word2.Length; j++)
{
if (i == 0 || j == 0)
{
nums[i, j] = 0;
}
else
{
if (word1[i - 1] == word2[j - 1])
{
nums[i,j] = nums[i - 1, j - 1] + 1;
}
else
{
nums[i, j] = 0;
}
}
if (max < nums[i, j])
{
max = nums[i, j];
index = i;
}
}
}
string str = "";
if (max == 0)
{
return "";
}
else
{
for (int i = index-max; i <= max; i++)
{
str += word2[i];
}
return str;
}
}