题解 | #查找两个字符串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,仅供参考
