资源简介
所有最长公共子序列(LCS)——动态规划——Java---所有!!!所有!!!所有!!!
代码片段和文件信息
package basic.dp;
/**
* 动态规划,找出《所有》最长公共子序列
*
* @description LongestCommonSubSequence.java
* @author Administrator
* @date 2018/04/17
* @version
*/
public class LongestCommonSubSequence {
public static void main(String[] args) {
String x = “ABCBDAB“;
String y = “BDCABA“;
int longest = getLCS(x y);
//System.out.println(longest);
}
/**
* getLCS TODO :得到最长子序列长度,并输出所有最长子序列
*
* @param x
* 序列x
* @param y
* 序列y
* @return 最长子序列长度
* @author zhiman
* @date 2018/04/17 下午9:24:18
*/
private static int getLCS(String x String y) {
int xlen = x.length();
int ylen = y.length();
// 此处的棋盘长度要比字符串长度多加1,需要多存储一行0和一列0
int[][] commonSublen = new int[xlen + 1][ylen + 1];
// 1代表上 2 代表向左上 3代表向左 4代表上或者左
int[][] direction = new int[xlen + 1][ylen + 1];
// 将整个数组commonSublen填充值
for (int i = 1; i <= xlen; i++) {
char xi = x.charAt(i - 1);
for (int j = 1; j <= ylen; j++) {
char yj = y.charAt(j - 1);
if (xi == yj) {
commonSublen[i][j] = commonSublen[i - 1][j - 1] + 1;
// 2 代表向左上
direction[i][j] = 2;
} else if (commonSublen[i - 1][j] > commonSublen[i][j - 1]) {
commonSublen[i][j] = commonSublen[i - 1][j];
// 1代表上
direction[i][j] = 1;
} else if (commonSublen[i - 1][j] < commonSublen[i][j - 1]) {
commonSublen[i][j] = commonSublen[i][j - 1];
// 3代表左
direction[i][j] = 3;
} else {
// 如果commonSublen[i - 1][j] == commonSublen[i][j - 1]
// 向上或者向左不影响结果
// 4代表上 或者 左
commonSublen[i][j] = commonSublen[i - 1][j];
// 1代表上
direction[i][j] = 4;
}
- 上一篇:java答辩ppt
- 下一篇:Java实现循环冗余码CRC生成算法源代码
相关资源
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
川公网安备 51152502000135号
评论
共有 条评论