题解 | #名字串生成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; } }