美文网首页
最长公共子序列2

最长公共子序列2

作者: 赵老拖 | 来源:发表于2022-05-28 18:57 被阅读0次

描述

给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列

image.png

思路:
1、定义dp[i][j] 其中dp[i][j]表示在s1中以i结尾,s2中以j结尾的字符串的最长公共子序列字符串。
2、若是i位与j位的字符相等,则该问题可以变成s.charAt(i)+dp[i−1][j−1],
3、若是i位与j位的字符不相等,则对比 dp[i−1][j],dp[i][j-1]谁的字符串长,就取谁的结果

import java.util.*;


public class Solution {
    /**
     * longest common subsequence
     * @param s1 string字符串 the string
     * @param s2 string字符串 the string
     * @return string字符串
     */
    public String LCS (String s1, String s2) {
        int length1 =s1.length();
        int length2 =s2.length();
        String[][]dp=new String[length1+1][length2+1];
        for(int i = 0;i<=length1;i++){
            for(int j = 0;j<=length2;j++){
                if(i == 0||j==0){dp[i][j] = "";}
                else if(s1.charAt(i-1) == s2.charAt(j-1)){
                  dp[i][j] = dp[i-1][j-1]+s1.charAt(i-1);
                }else{
                   if(dp[i-1][j].length()>dp[i][j-1].length()) {
                       dp[i][j] =  dp[i-1][j];
                   }else{
                       dp[i][j] =  dp[i][j-1]; 
                   }
                }
            }
        }
        if(dp[length1][length2]=="") return "-1";
        return dp[length1][length2];
    }
}

相关文章

  • 公共子序列问题

    最长公共子序列 最长上升子序列 最长公共上升子序列

  • 最长公共子序列和最长公共子串

    最长公共子序列和最长公共子串区别 最长公共子串(Longest CommonSubstring)和最长公共子序列(...

  • 字符串的几个问题

    1.最长公共子序列2.最长公共子串3.最长回文串4.最长回文序列5.最长递增序列6.最长先增后减序列7.(最短)编...

  • 算法(04)动态规划

    零钱问题 背包问题 最长公共子序列 最长公共子串 最长上升子序列 最大连续子序列和

  • 每天一道算法题18

    【最长公共子序列,子串】给定两个字符串上str1 和 str2, 求两个字符的最长公共子序列和最长公共子串。 最长...

  • LCS问题

    LCS问题包括最长公共子序列和最长公共子串,其中,最长公共子串要求必须连续。 对于二者的求解方式 最长公共子序列:...

  • 子序列问题

    最长公共子序列 最长上升/下降/不升/不降子序列

  • 子串 子序列 总结

    最长公共子串 子串的要求比子序列严格,所以可以讨论子串的终点 最长公共子序列 DP解 递归+memo 最长公共回文...

  • 序列比对(二十四)——最长公共子序列

    原创:hxj7 本文介绍如何求解两个字符串的最长公共子序列。 最长公共子序列问题 前文《序列比对(23)最长公共子...

  • lintcode 最长公共子序列

    给出两个字符串,找到最长公共子序列(LCS),返回LCS的长度。说明最长公共子序列的定义: 最长公共子序列问题是在...

网友评论

      本文标题:最长公共子序列2

      本文链接:https://www.haomeiwen.com/subject/xnxwprtx.html