|
2つの文字列を1文字ずつずらしながら、重なり合う部分を取り出して、それを1文字ずつ比較していくといいのかなあ。
…と言葉にしても自分でもよくわからないので、コードに書いてみた。
public int GetSameStringLength(string a, string c)
{
int result = 0;
for (int j = (1 - c.Length); j <= (a.Length - 1); j++)
{
int count = 0;
for (int i = Math.Max(0, j + 1); i <= Math.Min((c.Length - 1) + j, a.Length - 1); i++)
{
if (a[i] == c[i - j])
{
System.Diagnostics.Debug.Write(a[i]);
count++;
result = Math.Max(result, count);
}
else
{
System.Diagnostics.Debug.WriteLineIf(count > 0, "");
count = 0;
}
}
}
return result;
}
|