题解 | #名字串生成I#
名字串生成I
https://www.nowcoder.com/practice/6544721abdd54f1f938f2a98ac03922a
知识点
字符串
解题思路
能组成str1和str2肯定是他们共同的开头,但是这个字符可能过长,包含杂字符。
- 找到str1,str2共同开始的字符s
- 要找最长的,从s的最末分割字符,找到0到n的字符temp
- 如果str1和str2通过分割temp都是0,表示都能通过temp组成,那么temp就是答案
- 下标减一,继续步骤2
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
StringBuilder sb = new StringBuilder();
int n = str1.length(), m = str2.length();
for(int i = 0; i < n && i < m; i++){
if(str1.charAt(i) != str2.charAt(i)){
break;
} else{
sb.append(str1.charAt(i));
}
}
String s = sb.toString();
for(int i = s.length(); i >= 0; i--){
String temp = s.substring(0, i);
if(str1.split(temp).length == 0 && str2.split(temp).length == 0){
return temp;
}
}
return s;
}
}
查看6道真题和解析