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

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

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

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.TreeSet;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String a = in.nextLine();
        String b = in.nextLine();
        String Big,Small;
        if(a.length()>b.length())
        {
            Big=a;
            Small=b;
        }else {
            Small=a;
            Big=b;
        }
        int max = 0;
        List<String> strs = new ArrayList<>();
        List<Integer> nums = new ArrayList<>();
        for (int i = 0; i < Small.length(); i++) {
            for (int j = i; j < Small.length(); j++) {
                String x=Small.substring(i,j+1);
                if (Big.contains(x)){
                    strs.add(x);
                    nums.add(x.length());
                    max=Math.max(x.length(),max);
                }

            }
        }
        for (int i = 0; i < nums.size(); i++) {
            if (nums.get(i)==max) {
                System.out.println(strs.get(i));
                return;
            }
        }

    }
}

华为OD机试 文章被收录于专栏

自己在准备机试,记录一下学习轨迹,主要参考真题,代码大部分是自己想的,不保证ac,仅供参考

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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