import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param str1 string字符串 * @param str2 string字符串 * @return string字符串 */ public String lcmOfStrings (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) { break; } } } if (flag) { if (str1.length() > str2.length()) { return str1; } else { return str2; } } return ""; } 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); } }
本题主要考察字符串的基本操作,所用编程语言是java。
我们可以判断两个字符串是否可以由部分字符串组合而成,如果可以则返回长度最大的字符串,否则返回空字符串