题解 | #名字串生成I#
名字串生成I
https://www.nowcoder.com/practice/6544721abdd54f1f938f2a98ac03922a
题目考察的知识点
考察字符串相关操作
题目解答方法的文字分析
需要找到他们的最大公约数长度的子串,找不到就是“”,因为这些名字可以由一个子串重复若干次得到。找到最大公因数之后将0~公因数的字符串返回即可。
本题解析所用的编程语言
使用Java语言
完整且正确的编程代码
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str1 string字符串
* @param str2 string字符串
* @return string字符串
*/
public String gcdOfStrings (String str1, String str2) {
// write code here
int index = 0;
boolean flag = false;
int length = Math.min(str1.length(), str2.length());
for (int i = length; i >= 1; i--) {
if (str1.length() % i == 0 && str2.length() % i == 0) {
flag = isUnite(str1, str2, i);
if (flag) {
index = i;
break;
}
}
}
return str1.substring(0, index);
}
public boolean isUnite (String str1, String str2, int length) {
// write code here
StringBuffer stringBuffer1 = new StringBuffer();
StringBuffer stringBuffer2 = new StringBuffer();
for (int i = 0; i < str1.length() / length; i++) {
stringBuffer1.append(str1, 0, length);
}
for (int i = 0; i < str2.length() / length; i++) {
stringBuffer2.append(str1, 0, length);
}
return (stringBuffer1.toString().equals(str1)) &&
(stringBuffer2.toString().equals(str2));
}
}
查看8道真题和解析