题解 | #HJ065 查找两个字符串a,b中的最长公共子串#

查找两个字符串a,b中的最长公共子串

http://www.nowcoder.com/practice/181a1a71c7574266ad07f9739f791506

import java.util.Scanner;

/**
 * HJ65 查找两个字符串a,b中的最长公共子串-中等
 */
public class HJ065 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            String s1 = sc.nextLine();
            String s2 = sc.nextLine();
            String maxSubStr = getMaxSubStr2(s1, s2);
            System.out.println(maxSubStr);
        }
        sc.close();
    }

    private static String getMaxSubStr2(String s1, String s2) {
        String longStr = s1.length() > s2.length() ? s1 : s2;
        String shortStr = s1.length() <= s2.length() ? s1 : s2;
        String maxSubStr = "";
        for (int i = 0; i < shortStr.length(); i++) {
            for (int j = 0; j < i + 1; j++) {
                String subStr = shortStr.substring(j, shortStr.length() - i + j);
                if (longStr.contains(subStr)) {
                    return subStr;
                }
            }
        }
        return maxSubStr;
    }
}
全部评论

相关推荐

05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务