最大公共子串LCS(Java实现)
来源:互联网 发布:淘宝ugg授权书怎么弄 编辑:程序博客网 时间:2024/06/07 16:52
转至:http://blog.csdn.net/earbao/article/details/50424948
这篇文章讲的听清楚了,根据他的思路,我自己写了一遍代码,并放弃考虑有多个答案的情况。
public class Lcs { public static String longest(String s1,String s2){ char ch1[]=s1.toCharArray(); char ch2[]=s2.toCharArray(); int length1=ch1.length; int length2=ch2.length; /* 这里其实还可以考虑一下那个数组较长,在下面创建mat数组时可以节省一点空间,在两个数组长度相差较大时能节省较多空间。 */ int max=0; int sign=0; int[] mat=new int[length1]; for(int i=0;i<length2;i++){ for(int j=length1-1;j>=0;j--){ if(ch2[i]==ch1[j]){ if(i==0 || j==0){ mat[j]=1; if(max==0){ max=1; sign=j; } } else{ mat[j]=mat[j-1]+1; if(mat[j]>max){ max=mat[j]; sign=j; } } } else{ mat[j]=0; } } } return new String(ch1, sign-max+1, max); } public static void main(String[] args) { String s1="erecadhssjdgd"; String s2="abcadhssjda"; System.out.println(longest(s1, s2)); }}
0 0
- 最大公共子串LCS(Java实现)
- C++实现——LCS-最大公共子串长度
- LCS算法&最大公共子串&最长公共子序列 PHP 实现
- 经典问题LCS(最大公共子串问题)C代码实现
- 最大公共连续子串(LCS问题)
- LCS 查找最大公共子串
- HDU1080(最大公共子串LCS+DP)
- HDU1513(最大公共子串LCS+DP)
- 最大公共子序列(LCS算法)
- Java-LCS最长公共子序列(动态规划实现)
- LCS最大公共子序列
- 最大公共子序列LCS
- LCS 最大公共子序列
- LCS公共子串
- 动态规划 字符串最大公共子序列以及最大公共子串问题LCS
- LCS求两个字符串的最大公共子串
- 算法之插入、归并排序,最大公共子串lcs
- LCS算法寻找字符串最大公共子串
- Spring AOP(2)- 后置增强 实现
- 关于浏览器网站栏中URL的探究(一)初步认识各部分
- 逆向工程核心原理学习笔记(七):总结
- 关于idea连接docker无法下载docker-java.jar问题解决
- 【设计模式】——模板方法模式
- 最大公共子串LCS(Java实现)
- md5 实现原理
- ansible : UNREACHABLE!=>{"change":false......
- struts2中的约定访问(不需要配置文件)
- Handler,Looper,Message
- 一个完整的ajax简单案例
- Bounds(包围盒)概述与AABB包围盒应用
- Codeforces Round #407 (Div. 1) B
- Count and Say