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

最长公共子序列

时间:2020-02-12 18:43:18      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:system   close   creat   out   因此   class   char   hid   字符串   

最长公共子序列

思路:

首先子序列是非连续性的,因此两个字符串的最长公共子序列必然是以两个字符串最先相同的字符开始计算,然后以后面的剩余子串为子问题,因此以此为基础进行递归。

技术图片
 1 /**
 2  * @author: wooch
 3  * @create: 2020/02/12
 4  *
 5  * 最长公共子序列
 6  * 核心思路:
 7  * 首先子序列是非连续性的,因此两个字符串的 最长公共子序列 必然是以两个字符串最先相同的字符开始计算
 8  * 因此以此为基础进行递归
 9  */
10 public class LongestPublicSubSequence {
11     public static void main(String[] args) {
12         int a = longestPublicSubSequence("abcd","xacdb");
13         System.out.println(a);
14     }
15 
16     /**
17      * by recursive
18      * @param strX
19      * @param strY
20      * @return
21      */
22     public static int longestPublicSubSequence(String strX,String strY){
23         if(strX.length()==0||strY.length()==0){
24             return 0;
25         }
26         if(strX.charAt(0)==strY.charAt(0)){
27             return longestPublicSubSequence(strX.substring(1),strY.substring(1))+1;
28         }else{
29             return Math.max(longestPublicSubSequence(strX.substring(1),strY),
30                     longestPublicSubSequence(strX,strY.substring(1)));
31         }
32     }
33 }
View Code

 

最长公共子序列

标签:system   close   creat   out   因此   class   char   hid   字符串   

原文地址:https://www.cnblogs.com/baishouzu/p/12299867.html

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