编辑代码

public class test {
    public static int longString(String text1, String text2) {
        if(text1.length()==0||text2.length()==0){
            return 0;
        }//如果有一个字符串长度为0,那么没有公共子串
        int m = text1.length();
        int n = text2.length();
        int[][] num = new int[m+1][n+1];//创建一个二位数组
        for (int i = 1 ; i<=m ; i++){
            for(int j =1 ; j<=n ; j++){
                if(text1.charAt(i-1)==text2.charAt(j-1)){
                    num[i][j]=num[i-1][j-1]+1;//若新的字符相同则长度加1

                }else{
                    num[i][j]=Math.max(num[i-1][j],num[i][j-1]);//新的字符不同,则取上一步骤里面大的那组数
                }
            }
        }
        return num[m][n];
    }

    public static void main(String[] args){
        int result = longString("asdfqwe","dfqw");
        System.out.println("最大公共字符串子序列: "+result);
    }

}