码迷,mamicode.com
首页 > 其他好文 > 详细

动态规划---两个字符串的最长公共子序列

时间:2018-09-21 20:51:17      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:子序列   bsp   规划   str   ++   pre   sequence   动态规划   turn   

public static int MaxLengthSubSequence(String str1, String str2){
            int max = 0;
            int n1 = str1.length();
            int n2 = str2.length();
            if(str1!=null && str2!=null && n1>0 && n2>0){
                
                int m[][] = new int[n1+1][n2+1];
                for(int i=1;i<=n1;i++){
                    for(int j=1;j<=n2;j++){
                        if(str1.charAt(i-1) == str2.charAt(j-1)){
                            m[i][j] = m[i-1][j-1]+1;
                        }else{
                            m[i][j] = Math.max(m[i-1][j], m[i][j-1]);
                        }
                        if(max < m[i][j]){
                            max = m[i][j];
                        }
                    }
                }
                for(int i=0;i<m.length;i++){
                    for(int j=0;j<m[i].length;j++){
                        System.out.print(m[i][j]+" ");
                    }
                    System.out.println();
                }
            }
            return max;
        }

 

动态规划---两个字符串的最长公共子序列

标签:子序列   bsp   规划   str   ++   pre   sequence   动态规划   turn   

原文地址:https://www.cnblogs.com/duanjiapingjy/p/9688358.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!