码迷,mamicode.com
首页 > 其他好文 > 详细

LintCode-Longest Common Subsequence

时间:2015-01-01 00:12:17      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

Given two strings, find the longest comment subsequence (LCS).

Your code should return the length of LCS.

Example

For "ABCD" and "EDCA", the LCS is "A" (or D or C), return 1

For "ABCD" and "EACB", the LCS is "AC", return 2

Solution:

 1 public class Solution {
 2     /**
 3      * @param A, B: Two strings.
 4      * @return: The length of longest common subsequence of A and B.
 5      */
 6     public int longestCommonSubsequence(String A, String B) {
 7         int lenA = A.length(), lenB = B.length();
 8         if (lenA==0 || lenB == 0) return 0;
 9 
10         int[][] lcs = new int[lenA+1][lenB+1];
11         for (int i=0;i<=lenA;i++) lcs[i][0] = 0;
12         for (int i=0;i<=lenB;i++) lcs[0][i] = 0;
13 
14         for (int i=1;i<=lenA;i++)
15             for (int j=1;j<=lenB;j++){
16                 lcs[i][j] = Math.max(lcs[i-1][j], lcs[i][j-1]);
17                 if (A.charAt(i-1) == B.charAt(j-1) && lcs[i][j]<lcs[i-1][j-1]+1)
18                 lcs[i][j] = lcs[i-1][j-1]+1;
19             }
20 
21         return lcs[lenA][lenB];
22     }
23 }

 

LintCode-Longest Common Subsequence

标签:

原文地址:http://www.cnblogs.com/lishiblog/p/4196811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!