Net Core教程

Leetcode1143. 最长公共子序列(c#)

本文主要是介绍Leetcode1143. 最长公共子序列(c#),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

题解:力扣

public class Solution
 {
    public int LongestCommonSubsequence(string text1, string text2)
    {
        int num1 = text1.Length;
        int num2 = text2.Length;
        int[,] dp = new int[num1 + 1,  num2 + 1];
        for(int i = 0; i < num1; i++)
        {
            for(int j = 0; j < num2; j++)
            {
                if(text1[i] == text2[j])
                {
                    dp[i + 1, j + 1] = dp[i, j] + 1;
                }
                else
                {
                    dp[i + 1, j + 1] = Max(dp[i, j + 1], dp[i + 1, j]);
                }
            }

        }
        return dp[num1, num2];
    }

    private int Max(int a, int b)
    {
        if(a > b)
            return a;
        else
            return b;    
    }

}

这篇关于Leetcode1143. 最长公共子序列(c#)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!