最长公共子串:两个子串中公共且连续的子串
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharpLCSProblem
{
class Program
{
static int LCSStr(string str1, string str2)
{
int max = 0;
int[,] res = new int[str1.Length, str2.Length];
for (int i = 0; i < str1.Length; i++)
{
for (int j = 0; j < str2.Length; j++)
{
if (str1[i] != str2[j])
{
res[i, j] = 0;
}
else
{
if (i - 1 < 0 || j - 1 < 0)
res[i, j] = 1;
else
res[i, j] = res[i - 1, j - 1] + 1;
max = Math.Max(max, res[i, j]);
}
}
}
return max;
}
static void Main(string[] args)
{
string str1 = Console.ReadLine();
string str2 = Console.ReadLine();
int result = LCSStr(str1, str2);
Console.WriteLine(result);
Console.ReadKey();
}
}
}
解答思路:
最长公共子串