题解 | #名字串生成I#

名字串生成I

https://www.nowcoder.com/practice/6544721abdd54f1f938f2a98ac03922a

知识点

字符串

解题思路

能组成str1和str2肯定是他们共同的开头,但是这个字符可能过长,包含杂字符。

  1. 找到str1,str2共同开始的字符s
  2. 要找最长的,从s的最末分割字符,找到0到n的字符temp
  3. 如果str1和str2通过分割temp都是0,表示都能通过temp组成,那么temp就是答案
  4. 下标减一,继续步骤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;
    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务