- 浏览: 787383 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
萨琳娜啊:
Java读源码之Netty深入剖析网盘地址:https://p ...
Netty源码学习-FileRegion -
飞天奔月:
写得有趣 ^_^
那一年你定义了一个接口 -
GoldRoger:
第二个方法很好
java-判断一个自然数是否是某个数的平方。当然不能使用开方运算 -
bylijinnan:
<script>alert("close ...
自己动手实现Java Validation -
paul920531:
39行有个bug:"int j=new Random ...
java-蓄水池抽样-要求从N个元素中随机的抽取k个元素,其中N无法确定
http://zhedahht.blog.163.com/blog/static/254111742007376431815/
http://blog.csdn.net/yysdsyl/article/details/4226630
http://blog.csdn.net/yysdsyl/article/details/4226630
import java.util.ArrayList; import java.util.List; public class LongestCommonSubsequence { /** * Q 56 最长公共子序列 * 如果字符串一的所有字符按其在字符串中的顺序出现在另外一个字符串二中,则字符串一称之为字符串二的子串。 * 注意,并不要求子串(字符串一)的字符必须连续出现在字符串二中。 * 请编写一个函数,输入两个字符串,求它们的最长公共子串,并打印出最长公共子串。 * 例如:输入两个字符串BDCABA和ABCBDAB,字符串BCBA和BDAB都是是它们的最长公共子串 * 则输出它们的长度4,并打印任意一个子串。 * see http://zhedahht.blog.163.com/blog/static/254111742007376431815/ * see also http://blog.csdn.net/yysdsyl/article/details/4226630 */ public static void main(String[] args) { LongestCommonSubsequence lcs=new LongestCommonSubsequence(); String[] str={"BDCABA","ABCBDAB","abcd","ad"}; //test "BDCABA","ABCBDAB" int length=lcs.findLCS(str[0],str[1]); System.out.println(length); System.out.println(lcs.list); lcs.list.clear(); //test "abcd","ad" length=lcs.findLCS(str[2],str[3]); System.out.println(length); System.out.println(lcs.list); } /* / 0 if i<0 or j<0 //case 1 c[i,j]= c[i-1,j-1]+1 if i,j>=0 and xi=xj //case 2 \ max(c[i,j-1],c[i-1,j] if i,j>=0 and xi≠xj //case 3 */ public int findLCS(String strA,String strB){ if(strA==null||strB==null){ return 0; } int len1=strA.length(); int len2=strB.length(); if(len1==0||len2==0){ return 0; } char[] lettersA=strA.toCharArray(); char[] lettersB=strB.toCharArray(); int[][] LCS_Length=new int[len1][len2]; //'direction' records how lcs[i][j] come from.It's used to print LCS. Direction[][] direction=new Direction[len1][len2]; for(int i=0;i<len1;i++){ for(int j=0;j<len2;j++){ if(i==0 || j==0){//case 1 if(lettersA[i]==lettersB[j]){ LCS_Length[i][j]=1; direction[i][j]=Direction.LeftUp; }else{ if(i>0){ LCS_Length[i][j]=LCS_Length[i-1][j]; direction[i][j]=Direction.Up; } if(j>0){ LCS_Length[i][j]=LCS_Length[i][j-1]; direction[i][j]=Direction.Left; } } }else{ if(lettersA[i]==lettersB[j]){//case 2 LCS_Length[i][j]=LCS_Length[i-1][j-1]+1; direction[i][j]=Direction.LeftUp; }else{//case 3 if(LCS_Length[i][j-1]>LCS_Length[i-1][j]){ LCS_Length[i][j]=LCS_Length[i][j-1]; direction[i][j]=Direction.Left; }else{ LCS_Length[i][j]=LCS_Length[i-1][j]; direction[i][j]=Direction.Up; } } } } } printLCS(direction,lettersA,lettersB,len1-1,len2-1); return LCS_Length[len1-1][len2-1]; } private List<Character> list=new ArrayList<Character>(); //from lcs[len-1][len-1] to lcs[0][0] public void printLCS(Direction[][] direction,char[] lettersA,char[] lettersB,int row,int col){ if(lettersA==null||lettersB==null){ return; } int len1=lettersA.length; int len2=lettersB.length; if(len1==0||len2==0||!(row<len1&&col<len2)){ return; } if(direction[row][col]==Direction.LeftUp){ if(row>0&&col>0){ printLCS(direction,lettersA,lettersB,row-1,col-1); } list.add(lettersA[row]); } if(direction[row][col]==Direction.Left){ if(col>0){ printLCS(direction,lettersA,lettersB,row,col-1); } } if(direction[row][col]==Direction.Up){ if(row>0){ printLCS(direction,lettersA,lettersB,row-1,col); } } } public enum Direction{Up,Left,LeftUp}; }
发表评论
-
百度笔试题:一个已经排序好的很大的数组,现在给它划分成m段,每段长度不定,段长最长为k,然后段内打乱顺序,请设计一个算法对其进行重新排序
2012-12-21 18:17 4102import java.util.Arrays; ... -
java-60-在O(1)时间删除链表结点
2012-03-12 00:12 1988public class DeleteNode_O1_ ... -
java-57-用两个栈实现队列&&用两个队列实现一个栈
2012-03-11 11:25 10803import java.util.ArrayList; ... -
java-26-左旋转字符串
2012-03-11 11:23 3085public class LeftRotateString ... -
java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶
2012-03-08 20:41 5002import java.util.Stack; pu ... -
java-54- 调整数组顺序使奇数位于偶数前面
2012-03-06 21:09 3702import java.util.Arrays; imp ... -
java-63-在字符串中删除特定的字符
2012-03-05 16:47 2335public class DeleteSpecific ... -
java-67-扑克牌的顺子.从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大
2012-03-05 15:46 6248package com.ljn.base; import ... -
java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
2012-03-05 10:38 6192import java.util.Arrays; imp ... -
java-69-旋转数组的最小元素。把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个排好序的数组的一个旋转,输出旋转数组的最小元素
2012-02-29 10:30 3537public class MinOfShiftedAr ... -
java-67- n个骰子的点数。 把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。
2012-02-28 00:00 6452public class ProbabilityOfD ... -
java-71-数值的整数次方.实现函数double Power(double base, int exponent),求base的exponent次方
2012-02-27 21:43 3092public class Power { /* ... -
java-73-输入一个字符串,输出该字符串中对称的子字符串的最大长度
2012-02-27 16:14 5845public class LongestSymmtri ... -
java-75-二叉树两结点的最低共同父结点
2012-02-27 11:27 1553import java.util.LinkedList; ... -
java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
2012-02-11 10:56 2508public class OcuppyMoreThan ... -
java-17-在一个字符串中找到第一个只出现一次的字符
2012-02-11 10:04 5887public class FirstShowOnlyO ... -
java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
2012-02-10 23:26 1981思路来自:http://zhedahht.blog.163.c ... -
java-51-输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
2012-02-10 10:55 4276public class PrintMatrixClo ... -
java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
2012-02-09 23:08 2234思路来自:http://zhedahht. ... -
java-37.有n 个长为m+1 的字符串,如果某个字符串的最后m 个字符与某个字符串的前m 个字符匹配,则两个字符串可以联接
2012-01-27 22:46 2329public class MaxCatenate { ...
相关推荐
1. 掌握动态规划法的设计思想并能熟练运用 2. 强化动手编程的能力 二. 实验内容 用动态规划法求两个序列的最大公共子序列 三. 算法思想 1. 分析可得如下动态规划函数: ① L[0][0]=L[i][0]=L...
最长公共子序列(Longest Common Subsequence,LCS)是计算机科学中的一种经典问题,尤其在算法和数据结构领域有着广泛的应用。这个问题涉及到比较两个序列,找出它们的最长的子序列,这个子序列不需要在原序列中...
最长公共子序列(Longest Common Subsequence,简称LCS)是计算机科学中一种经典的问题,主要出现在序列比对、文本编辑距离等领域。在两个给定的字符串中,LCS是指不考虑字符顺序的最长子串,它同时存在于这两个字符...
java-string-similarity, 各种字符串相似性和距离算法 java-string-similarity 实现不同字符串相似度和距离... 目前已经实现了许多算法( 包括Levenshtein编辑距离和 sibblings,jaro winkler,最长公共子序列,余弦相
最长公共子序列(Longest Common Subsequence,LCS)问题是一个经典的计算机科学问题,主要涉及字符串处理和算法设计。在两个或多个字符串中找到最长的子序列,这个子序列不必连续,但必须保持原字符串中的相对顺序...
所有最长公共子序列(LCS)——动态规划——Java---所有!!!所有!!!所有!!!
Java中的动态规划法被广泛应用于解决复杂的问题,如求解最长公共子序列(Longest Common Subsequence, LCS)和最长公共子字符串(Longest Common Substring, LSS)。这两个概念在计算机科学中尤其是在字符串处理和...
【最长公共子序列】(Longest Common Subsequence, LCS) 是一种在计算机科学中常见的字符串比较问题,主要涉及序列和动态规划。这个问题的目标是找到两个给定字符串的最长子序列,这个子序列不必连续,但必须保持原...
本文将深入探讨这两个文件:"mysql-connector-java-5.1.40.zip" 和 "mysql-connector-java-5.1.10.jar",以及它们在Java开发中的作用。 首先,`mysql-connector-java-5.1.40.zip` 是一个压缩文件,包含了MySQL ...
最长公共子序列(Longest Common Subsequence,LCS)算法是一种经典的计算机科学问题,主要应用于比较和分析两个或多个序列的相似性。在文本编辑、生物信息学、数据挖掘等领域有着广泛的应用。LCS问题的基本目标是...
RAM SDK 包含阿里云 Java SDK 公共部分和 RAM 部分,公共部分依赖aliyun-java-sdk-core, RAM 部分依赖aliyun-java-sdk-ram。 每个接口的详细使用方法请参考 RAM API 文档。 关于 SDK Demo 代码的自动生成和在线 ...
"mysql-connector-java-5.1.40.tar.gz" 是这个驱动程序的一个特定版本,版本号为5.1.40。这个压缩包包含了运行Java应用与MySQL数据库进行交互所需的类库和其他相关文件。 在Linux环境中处理这个压缩包,首先需要将...
这个"mysql-connector-java-5.1.45-bin.jar"文件是该驱动的一个特定版本,即5.1.45版。这个版本是纯净且正版的,适合于Java开发者在他们的项目中直接集成使用。 在Java编程中,为了连接到MySQL数据库,我们需要一个...
各种字符串相似度和距离算法的实现:Levenshtein,Jaro-winkler,n-Gram,Q-Gram,Jaccard索引,最长公共子序列编辑距离,余弦相似度......
mysql-connector-java-5.1.7-bin.jar
在C:\Program Files\Java目录下建立mysqlforjdbc子目录,进入该目录将mysql-connector-java-5.1.30-bin.jar到该目录下 进入C:\Program Files\Java\jdk1.7.0_04\lib目录将mysql-connector-java-5.1.30-bin-g.jar拷贝...
最长公共子序列(Longest Common Subsequence,LCS)算法是一种经典的计算机科学问题,主要应用于比较和分析两个或多个序列的相似性。在文本编辑、生物信息学、数据挖掘等领域有着广泛的应用。LCS的基本思想是寻找两...
此版本是"ckeditor-java-core-3.5.3",专门针对Java平台进行了优化,允许开发者在Java应用程序中集成CKEditor的功能。 1. **CKEditor简介** CKEditor是一款基于JavaScript的WYSIWYG(所见即所得)文本编辑器,最初...
这是MySQL最新的jar,mysql-connector-java-8.0.18.jar
mysql驱动包 mysql-connector-java-5.1.13-bin.jar 方便快捷获取。。。