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

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

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

import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s1 = in.nextLine();
        String s2 = in.nextLine();
        int n1 = s1.length();
        int n2 = s2.length();
        String ans = new String("");
        if (n1 > n2) {
            for (int i = 0; i < n2; i++) {
                StringBuilder sb = new StringBuilder();
                for (int j = i; j < n2; j++) {
                    sb.append(s2.charAt(j));
                    if (s1.contains(sb.toString())) {
                        if (sb.toString().length() > ans.length()) {
                            ans = sb.toString();
                        }
                    } else {
                        break;
                    }
                }
            }
        } else {
            for (int i = 0; i < n1; i++) {
                StringBuilder sb = new StringBuilder();
                for (int j = i; j < n1; j++) {
                    sb.append(s1.charAt(j));
                    if (s2.contains(sb.toString())) {
                        if (sb.toString().length() > ans.length()) {
                            ans = sb.toString();
                        }
                    } else {
                        break;
                    }
                }
            }
        }
        System.out.print(ans);
    }
}

全部评论

相关推荐

想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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