每日AC--POJ 1458 Common Subsequence -DP
来源:互联网 发布:linux内核分析 编辑:程序博客网 时间:2024/06/06 04:17
Common Subsequence
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 54754 Accepted: 22811
Description
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = < x1, x2, ..., xm > another sequence Z = < z1, z2, ..., zk > is a subsequence of X if there exists a strictly increasing sequence < i1, i2, ..., ik > of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = < a, b, f, c > is a subsequence of X = < a, b, c, f, b, c > with index sequence < 1, 2, 4, 6 >. Given two sequences X and Y the problem is to find the length of the maximum-length common subsequence of X and Y.
Input
The program input is from the std input. Each data set in the input contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct.
Output
For each set of data the program prints on the standard output the length of the maximum-length common subsequence from the beginning of a separate line.
Sample Input
abcfbc abfcabprogramming contest abcd mnp
Sample Output
420
import java.util.Scanner;/** * 类说明 * * <pre> * Modify Information: * Author Date Description * ============ =========== ============================ * DELL 2017年8月2日 Create this file * </pre> * */public class Main { /** * 最长公共子序列问题, 给定 两个字符串 求 这两个字符串的公共子序列 * 确认这个公式很重要. * * 动态规划问题: * dp[i+1][j+1] = { * dp[i][j] +1, dp[i][j+1], dp[j+1][i] // * dp[i+1][j] ,dp[i][j+1] * } */ public int getLongestCommonString(String str1, String str2){ int[][] dp = new int[str1.length()+1][str2.length()+1]; char[] strChar1 = str1.toCharArray(); char[] strChar2 = str2.toCharArray(); for(int i = 0; i < strChar1.length; i++){ for(int j = 0; j < strChar2.length; j++){ if(strChar1[i] == strChar2[j]){ dp[i+1][j+1] = dp[i][j] +1; }else{ dp[i+1][j+1] = Math.max(dp[i+1][j], dp[i][j+1]); } } } return dp[str1.length()][str2.length()]; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String str1 = "addadbs"; String str2 ="hdgsfvab"; String str3 = "abcfbc"; String str4 ="abfcab"; Scanner cin = new Scanner(System.in); String str5 = ""; String str6 = ""; while(cin.hasNext()){ str5 = cin.next(); str6 = cin.next(); int ans = new Main().getLongestCommonString(str5, str6); System.out.println(ans); } }}
阅读全文
0 0
- 每日AC--POJ 1458 Common Subsequence -DP
- poj 1458 Common Subsequence 【DP】
- DP-POJ-1458-Common Subsequence
- poj 1458Common Subsequence (dp)
- POJ 1458 Common Subsequence DP
- POJ 1458 || HDOJ 1159 Common Subsequence (DP)
- POJ 1458 Common Subsequence DP(LCS)
- POJ 1458 Common Subsequence 经典DP
- POJ 1458 Common Subsequence (DP,LCS)
- 【DP|LCS】POJ-1458 Common Subsequence
- POJ 1458 Common Subsequence dp基础
- poj 1458 Common Subsequence (DP:LCS)
- poj 动态规划DP - 1458 Common Subsequence
- POJ 1458 Common Subsequence (DP 动态规划)
- POJ 1458 Common Subsequence [DP.LIS]
- Poj 1458 Common Subsequence【LCS】【dp】
- POJ-1458-Common Subsequence-经典DP
- Common Subsequence--poj--1458
- PHP总结的一些语法
- 编辑修改小程序信息-微信小程序开发-视频教程6
- spark 启动命令
- 7 Critical Software Testing Skills
- jvm加载class文件的原理机制
- 每日AC--POJ 1458 Common Subsequence -DP
- unity常用的生命周期函数
- Ruby原理剖析-- 对象与类的内部数据结构
- github新建一个仓库时的帮助信息
- STL(十一)set集合容器
- C++ bitset
- 单链表的销毁
- 刚开始学jsp,怎么嵌在jsp中的javascript没有执行
- spring-boot-dyna-datasource(spring-boot动态数据源)