题解 | #公共子串计算#

公共子串计算

http://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b

import java.util.*;

public class Main{
    public static void main(String [] args){
        Scanner sc = new Scanner(System.in);
        String a = sc.nextLine();
        String b = sc.nextLine();
        int length = a.length()>b.length()?calc(a,b,b.length()):calc(b,a,a.length());
        System.out.println(length);
    }
    
    public static int calc(String  longer, String shorter, int length){
        if(length==0){
            return length;
        }
        if(longer.indexOf(shorter) >-1){
            return length;
        }
        int start = 0;
        boolean find = true;
        while(start+length <=shorter.length()){
            String str = shorter.substring(start,start+length);
            if(longer.indexOf(str) >-1){
                find = false;
                break;
            }
            start++;
        }
        if(find){
            length= calc(longer,shorter,length-1);
        }
        return length;
        
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务