首页 > 其他分享 >动态规划 -- 最长公共子串

动态规划 -- 最长公共子串

时间:2022-10-29 19:00:07浏览次数:54  
标签:子串 String -- str2 str1 int length new 最长

 public String LCS (String str1, String str2) {
        int max = 0;
        //存储中间值
        int[][] p = new int[str1.length()][str2.length()];
        StringBuilder temp = new StringBuilder();
        int pos = 0;
        for (int i = 0 ; i < str1.length(); i++) {
            for (int j = 0 ; j < str2.length(); j++) {
                   if(str1.charAt(i) == str2.charAt(j)){
                       if(i == 0 || j==0){
                           p[i][j] = 1;
                       }else{
                           p[i][j] = p[i-1][j-1] + 1;
                       }
                   }
                   if(max <= p[i][j]){
                        max = p[i][j];
                        pos = i;
                   }
            }
        }
        return str1.substring(pos-max+1,pos+1);
    }

  

总结:

动态规划的关键在于 用中间容器存放每次迭代的中间结果

循环比递归调用的执行效率更高

标签:子串,String,--,str2,str1,int,length,new,最长
From: https://www.cnblogs.com/yanher/p/16839408.html

相关文章

  • 日志包含Getshell
    题目来自CTFSHOWWEB81第一步,将携带有webshell的语句插入到UA当中,并访问主页<?phpsystem('ls');?>第二步,包含日志可以看到已经执行了命令。......
  • antd的update组件自定义上传样式及列表样式
    项目需求按UI设计上传的样式需要把showUploadList={false},自己写上传列表//本次上传的文件const[fileList,setFileList]=useState([]);//初始化时存储之前上传......
  • 【THUWC2020】Day2T2(dfs树,DP,线段树合并)
    对于每一个点\(u\),我们先找到满足右述条件的深度最小的\(u\)祖先\(f\)并记这个深度最小的祖先的深度为\(dp(u)\):\(f\)能只通过除了树上\([f,u]\)路径所包含的边之......
  • 实验6:开源控制器实践——ryu
    (一)基本要求1、分析L2Switch和POX的Hub模块有何不同:L2Switch模块查看不了流表,hub模块可以查看流表在L2Switch模块h1pingh2在L2Switch查看流表在hub模块查看流表2......
  • MyBatis初学心得
    一、MyBatis是一个优秀的大型持久层框架,用于简化JDBC的开发,javaee分为表现层、业务层和持久层三层架构。框架是一个半成品软件。  ......
  • 归还我的 ctrl+空格 快捷键
    归还我的ctrl+空格快捷键在使用搜狗输入法的过程中,搜狗输入法会占用Ctrl+空格键用于切换中英文,对于一个使用VSCode写代码的人来说,总是觉得不得劲.我在网上查找到有......
  • MASM 5初始化设置
      初学王爽的《汇编语言》时,MASM5的环境配置并未提及。相关软件可以在https://winworldpc.com/下载并安装(虚拟机我使用得是VMWare),其他网站下载的不是不全就是有问题,不......
  • 读《代码大全》有感——语句
    在结束完疯狂星期五之后,难得过一个周六,于是我把放在书架上很久的代码大全拿了出来,阅读了有关语句的相关内容。1.组织直线型的代码组织直线型代码的最主要原则是按照依赖......
  • 建立一个简单的IP地址web查询服务
    文档说明:只记录关键地方;目标:鼠标划词选中IP地址,查询IP归属地缘由:>想查询IP归属地要怎么弄?>原生IP和广播IP是怎么回事?>IP地址归属地是如何划分的?原理:用pythonw......
  • 高速缓存
    第四周高速缓存概述第四周高速缓存概述引言第1讲存储器层次结构概述第2讲Cache基本概述第3讲Cache映射方式第4讲Cache命中率和缺失率第5讲Cache的关联度课件P......