资源简介
所有最长公共子序列(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实现循环冗余码CRC生成算法源代码
- java答辩ppt
- JAVA ATM
- java小游戏《饲养宠物》源代码
- java实现导出csv文件并上传sftp
- thinkinJava.zip
- Dbutil.java
- java ee 学生成绩管理系统
- java聊天小程序
- 微信开发获取地理位置java
- RSA加密解密java
- java swing Demo完整版
-
java自定义Jfr
ame风格窗体 - mysql5.7jar包及用法.zip
- Java Spring技术栈构建团购网站前后台
- JAVA实验西工大
- java web小项目在线书店源码
- 使用JNI进行JAVA和C++之间的互调
- java实现的车牌识别系统
- Java实现KMeans点集文件
- java 计算数学表达式中缀表达式
- JavaToExe,jar转exe
- SVD++ JAVA實作
- JAVA计算器268139
- java模拟的5个哲学家就餐问题 使用管
- JAVA基于命令行的学生成绩管理系统
- JAVA实现多对多聊天
- java基础50道经典练习题及答案.doc
- Java中,当表单含有文件上传时,提交
- javaweb银行系统
评论
共有 条评论