h5制作的网站,互动平台官网,seo职业,商丘做网站张目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷#xff09;》。
刷的越多刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。 一、题目描述
给定两个只包含小写字母的字符串计算两个字符串的最大公共子串的长度。
注子串的定义指一个字符串删掉其部分前缀和后缀也可以不删后形成的字符串。
二、输入描述
输入两个只包含小写字母的字符串。
三、输出描述
输出一个整数代表最大公共子串的长度。
四、解题思路
首先读取输入的两个字符串将字符串长度较短的作为 s1长度较长的作为 s2初始化最大公共子串的长度 n 为 0使用两层循环遍历 s1 的所有子串从索引 i 开始到索引 j其中 i 不大于 j在内层循环中判断 s2 是否包含当前子串使用 contains 方法进行判断如果 s2 包含当前子串则更新最大公共子串的长度 n取当前子串的长度j - i和 n 中的较大值如果找到了包含当前子串的情况就可以跳出内层循环循环结束后输出最大公共子串的长度 n。
五、Java算法源码
public static void main(String[] args) {Scanner in new Scanner(System.in);String ss1 in.nextLine();String ss2 in.nextLine();String s1 ss1.length() ss2.length() ? ss1 : ss2;String s2 ss1.length() ss2.length() ? ss2 : ss1;int n 0;for (int i 0; i s1.length(); i) {for (int j s1.length(); j i; j--) {if (s2.contains(s1.substring(i, j))) {n j - i n ? j - i : n;break;}}}System.out.println(n);
}六、效果展示 下一篇华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。