POJ1458动态规划
2016-06-03 16:56
399 查看
Common Subsequence
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 46006 Accepted: 18845
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
42
0
分析
最长公共子序列,题目意思是给出两个字符串,求他们的最长公共子序列LCS的入门题 模板
Java代码
import java.util.Scanner; /** * Created by LWQ on 2016/4/9. */ public class OneFourFiveEight { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { ///dp[i][j]表示s1中第i个字符、s2中第j个字符之前的最长公共子序列长度(字符从1开始算) int[][] dp = new int[500][500]; String s1 = sc.next(); int length1 = s1.length(); String s2 = sc.next(); int length2 = s2.length(); for (int i = 1; i <= length1; i++) { for (int j = 1; j <= length2; j++) { if (s1.charAt(i - 1) == s2.charAt(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[length1][length2]); } } }
相关文章推荐
- 验证二叉查找树
- ubuntu install keras
- 图片旋转
- Linux rpm命令
- 安卓界面虚拟键盘弹出下面布局怎么顶上去
- jxl导入/导出excel
- BottomBar的使用
- LINUX下纯文本文档转换为PDF的方法
- iOS开发UI篇—Quartz2D使用(矩阵操作)
- C#的枚举数(Enumerator)和可枚举类型(Enumerable)
- 14.2.5.1 Role of the .frm File for InnoDB Tables InnoDB .frm文件的作用
- Android动画
- Cocos Studio 扩展说明
- 正则表达式:(?m)(\\S+)\\s+((\\S+)\\s+(\\S+))$
- mysql版同步数据
- openoffice+pdf2swf实现在线转换office文档,实现在线预览
- 【Alogrithm】DFS实例1
- 蓝牙 WBS 宽带通话 (wide band speech) 剖析(二) -- BCCMD control chip
- 使用Java操作Mongodb
- Android ListView在PopupWindow里时wrap_content无效