最长公共子序列

来源:互联网 发布:mysql 存储过程 参数 编辑:程序博客网 时间:2024/04/30 22:54
问题描述  给定两个字符串,寻找这两个字串之间的最长公共子序列。输入格式  输入两行,分别包含一个字符串,仅含有小写字母。输出格式  最长公共子序列的长度。样例输入abcdghaedfhb样例输出3样例说明  最长公共子序列为a,d,h。数据规模和约定  字串长度1~1000。
import java.util.Scanner;/** * 最长公共子序列 * @author yurong * */public class MaxZiXueLie {public static void main(String[] args) {// TODO Auto-generated method stubScanner console = new Scanner(System.in);String A = console.nextLine();String B = console.nextLine();char[] a = A.toCharArray();char[] b = B.toCharArray();int k = 0;int sum = 0;int[][] dp = new int[a.length+1][b.length+1];for(int i = 1; i <= a.length; i++){for(int j = 1; j <= b.length; j++){if(a[i-1] == b[j-1]){dp[i][j] = dp[i-1][j-1]+1;}else{dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]);}}}System.out.println(dp[a.length][b.length]);}}


原创粉丝点击