最长递公共增子序列

import     java.util.*;

public class Main{
    public static void main(String[] Args){
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.nextLine();
        String str2 = scanner.nextLine();
       str1 = " "+str1;
       str2=" "+str2;
        int[][] c=new int[str1.length()][str2.length()];
        int[][]b=new int[str1.length()][str2.length()];
        LCS(str1,str2,c);
       
        
    }
    
    public static void LCS(String str1,String str2,int[][]c){
        int max=0;
        for(int i=0;i<str1.length();++i){
            c[i][0]=0;
        }
        for(int i=0;i<str1.length();++i){
            c[0][i]=0;
        }
        for(int i=1;i<str1.length();++i){
            for(int j=1;j<str2.length();++j){
                if(str1.charAt(i)==str2.charAt(j)){
                    c[i][j]=c[i-1][j-1]+1;
                    if(max<c[i][j]){
                        max=c[i][j];
                    }
                 }
            }
        }
        System.out.println(max);
    }
}

 

posted @ 2017-03-31 23:14  mslog  阅读(122)  评论(0编辑  收藏  举报