zoukankan      html  css  js  c++  java
  • 最长公共子序列

    最长公共子序列

    思路:

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

     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
  • 相关阅读:
    Plotagraph软件五分钟光速速成傻瓜教程
    QT插件+ROS 2 新建项目
    QT插件+ROS 1 安装配置
    GitHub 优秀的 Android 开源项目 (精品)
    ROS的launch文件
    编写第一个 Shell 脚本
    CMake 入门实战
    ROS 创建服务和请求
    ROS 小乌龟测试
    【转】C++中的虚函数的实现
  • 原文地址:https://www.cnblogs.com/baishouzu/p/12299867.html
Copyright © 2011-2022 走看看