题解 | #名字串生成II# java
名字串生成II
https://www.nowcoder.com/practice/a90b0c33344e4b8488fe0b376de3205d
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,它就是两个字符串的最小公倍数字符串。