概述
只写代码:
namespace 字符串相似度
{
class Program
{
static void Main(string[] args)
{
string a = "efsdfdabcdefgaabcdefgaabcdefgaabcdefgasfabcdefgefsdfdabcdefgaabcdefgaabcdefgaabcdefgasfabcdefg";
string b = "efsdfdabcdefgaabcdefgaaefsdfdabcdefgaabcdefgaabcdefgaabcdefgasfabcdabcdefggaabcdefgasfabcdefg";
char[] arr = a.ToCharArray();
char[] brr = b.ToCharArray();
int len_a = a.Length;
int len_b = b.Length;
int[,] distance = InitArray(len_a, len_b, arr, brr);
Console.WriteLine(distance[len_a, len_b]);
Console.ReadLine();
}
static string ToString(int n)
{
if (n < 10) return "0" + n;
return n + "";
}
//
static int[,] InitArray(int len1, int len2,char[] a,char[] b)
{
var nums = new int[len1 + 1, len2 + 1];
nums[0, 0] = 0;
for (int i = 1; i <= len1; i++)
{
nums[i, 0] = i;
}
for (int j = 1; j <= len2; j++)
{
nums[0, j] = j;
}
for (int i = 1; i <= len1; i++)
{
for (int j = 1; j <= len2; j++)
{
if (a[i - 1] == b[j - 1]) nums[i, j] = nums[i - 1, j - 1];
else nums[i, j] = Min(nums[i - 1, j], nums[i, j - 1], nums[i - 1, j - 1]) + 1;
}
}
return nums;
}
static void WriteArray(int len_a,int len_b,char[]arr,char[]brr,int[,] distance)
{
for (int j = 0; j <= len_b; j++)
{
if (j > 0)
Console.Write(brr[j - 1] + " ");
else Console.Write(" ");
}
Console.WriteLine();
for (int i = 0; i <= len_a; i++)
{
if (i > 0)
Console.Write(arr[i - 1] + " ");
else Console.Write(" ");
for (int j = 0; j <= len_b; j++)
{
Console.Write(ToString(distance[i, j]) + " ");
}
Console.WriteLine();
}
}
//动态规划法
static int GetValue(char[] a, char[] b, int i, int j)
{
Console.WriteLine(i + "t" + j);
if (i == 0)
return j;
if (j == 0)
return i;
if (a[i-1] == b[j-1]) return GetValue(a, b, i - 1, j - 1);
else
{
int ins = GetValue(a, b, i, j - 1);
int del = GetValue(a, b, i - 1, j);
int rep = GetValue(a, b, i - 1, j - 1);
return Min(ins, del, rep) + 1;
}
}
private static int Min(int p1, int p2, int p3)
{
int min = p1;
if (p2 < min) min = p2;
if (p3 < min) min = p3;
return min;
}
}
}
最后
以上就是妩媚山水为你收集整理的C# -算法:字符串相似度的全部内容,希望文章能够帮你解决C# -算法:字符串相似度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复