首页 > 代码库 > ACM试题 - 最长公共子序列 - 动态规划方法
ACM试题 - 最长公共子序列 - 动态规划方法
ACM试题题源-(最长公共子序列):http://acm.nyist.net/JudgeOnline/problem.php?pid=36
提交代码:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int n = cin.nextInt(); int[] len = new int[n]; for (int k = 0; k < n; k++) { String s1 = cin.next(); String s2 = cin.next(); int[][] m = new int[s1.length()+1][s2.length()+1]; for (int i = 0; i < s1.length(); i++) { for (int j = 0; j < s2.length(); j++) { m[i][j] = 0; } } for (int i = 0; i < s1.length(); i++) { for (int j = 0; j < s2.length(); j++) { if (s1.charAt(i) == s2.charAt(j)) { m[i + 1][j + 1] = m[i][j] + 1; } else { m[i + 1][j + 1] = Math.max(m[i][j + 1], m[i + 1][j]); } } } len[k] = m[s1.length()][s2.length()]; } for (int i = 0; i < n; i++) { System.out.println(len[i]); } } }
参考资料:http://blog.chinaunix.net/uid-26548237-id-3374211.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。