[动态规划] [LCS算法] 最长公共子序列 longest common subsequence

本文介绍了一种求解两个字符串之间最长公共子序列(LCS)的算法实现过程。通过动态规划方法,该算法能够有效地找出两个字符串之间的最长公共子序列长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考: http://blog.youkuaiyun.com/hhygcy/article/details/3948969

           https://github.com/zhixiangli/code-similarity/blob/master/src/main/java/com/zhixiangli/codesimilarity/strategy/LCS.java



     private  int  getLCS( String  aString  b) {
        
         int  la  =  a. length();
         int  lb  =  b. length();
         int[][]  dp  =  new  int[ la  +  1][ lb  +  1];
        
         for ( int  i  =  1i  <=  lai ++) {
              for ( int  j  =  1j  <=  lbj ++) {
                   if ( a. charAt( i  -  1==  b. charAt( j  -  1)) {
                        dp[ i][ j=  dp[ i  -  1][ j  -  1+  1;
                  }  else {
                        dp[ i][ j=  Math. max( dp[ i][ j  -  1],  dp[ i  -  1][ j]);
                  }
             }
        }
         return  dp[ la][ lb];
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值