import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str1 string字符串
* @param str2 string字符串
* @return string字符串
*/
public String lcmOfStrings (String str1, String str2) {
// write code here
String s = "";
if (str1.length() > str2.length()) {
String temp = str1;
str1 = str2;
str2 = temp;
}
for (int i = 0; i < str1.length(); ++i) {
if (str1.charAt(i) != str2.charAt(i)) {
return s;
}
}
s = str1;
while (str1.length() < str2.length()) {
str1 += s;
}
return str1;
}
}
Java语言
主要考察以下知识点:
- 字符串操作
- 字符串长度和交换
- 最小公倍数
下面是代码的文字解释:
- 定义了一个名为 lcmOfStrings 的函数,接受输入参数 str1 和 str2(两个字符串)。
- 在函数内部,首先创建了一个空字符串 s 用于存储最小公倍数字符串。
- 针对字符串长度的比较,如果 str1 的长度大于 str2,则通过交换它们,保证 str1 长度不大于 str2。这是为了后续循环遍历时保持一致性。
- 使用循环遍历了两个字符串的相同位置,逐个比较字符。如果发现相同位置上的字符不相等,说明无法生成最小公倍数字符串,直接返回空字符串。
- 如果遍历完成后,说明两个字符串在相同位置上的字符都相等,将 str1 赋值给 s,作为初始的最小公倍数字符串。
- 使用循环,将 str1 连接到自身,直到其长度不小于 str2 的长度。这是为了构建最小公倍数字符串的过程,由于字符串在 Java 中是不可变的,每次连接都会生成新的字符串对象。
- 最终返回拼接后的 str1,它就是两个字符串的最小公倍数字符串。

京公网安备 11010502036488号