LCS 两个字符串的最大公共子字符串
来源:互联网 发布:在淘宝好评怎么改差评 编辑:程序博客网 时间:2024/05/22 19:26
public static string LCS(string s1, string s2)
{
if (s1 == s2)
return s1;
else if (String.IsNullOrEmpty(s1) || String.IsNullOrEmpty(s2))
return null;
var d = new int[s1.Length, s2.Length];
var index = 0;
var length = 0;
for (int i = 0; i < s1.Length; i++)
{
for (int j = 0; j < s2.Length; j++)
{
// 左上角值
var n = i - 1 >= 0 && j - 1 >= 0 ? d[i - 1, j - 1] : 0;
// 当前节点值 = "1 + 左上角值" : "0"
d[i, j] = s1[i] == s2[j] ? 1 + n : 0;
// 如果是最大值,则记录该值和行号
if (d[i, j] > length)
{
length = d[i, j];
index = i;
}
}
}
return s1.Substring(index - length + 1, length);
}
private void button2_Click(object sender, EventArgs e)
{
string s1 = "我抄我抄我抄抄抄:明月几时有,把酒问青天,不知天上宫阙,今夕是何年";
string s2 = "苏轼曾经写过“明月几时有,把酒问青天”的千古名句";
MessageBox.Show(s1.Length.ToString() + " " + s2.Length.ToString());
string s = LCS(s1, s2);
MessageBox.Show(s.ToString());
}
- LCS 两个字符串的最大公共子字符串
- LCS 两个字符串的最大公共子字符串
- LCS求两个字符串的最大公共子串
- 两个字符串的最大公共子字符串
- 两个字符串的最大公共子字符串
- 两个字符串的最大公共子串
- 两个字符串的最大公共子串
- 两个字符串的最大公共子长度
- LCS两个字符串最长公共子串
- 求两个字符串的最长公共子串(LCS)
- 求两个字符串的最长公共子串(LCS)
- 求两个字符串的最长公共子串(LCS)
- 找出两个字符串中最大的公共子字符串
- 给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。C实现
- 找出两个字符串的最大公共子串
- 求两个字符串的最大公共子串
- 找出两个字符串的最大公共子串
- 求两个字符串的最大公共子串
- 【转】用JDOM建立XML文件
- 用Java语言编写通过代理访问的应用程序
- GetModuleFileName函数
- WaitForMultipleObjects使用详解
- Java应用程序的网络运行环境编程
- LCS 两个字符串的最大公共子字符串
- 免费淘宝相册系统网站源码 v9.2
- JSF入门的小例子
- java关于时间格式化和转换的总结
- 开启Java对代理服务器和HTTP验证的支持
- Oracle11新特性:分区功能增强-Oracle新增复合分区 (转载)
- 耳语之人
- 打不过就跑
- bean:write基本用法之一