当前位置: 首页 > 知识库问答 >
问题:

通过相同长度的子串连接两根弦

滕星纬
2023-03-14

我想通过子串每一个相同长度的两个字符串,串联应该发生,就像我下面提到的,假设我有str1=raines,str2=Bowls,长度为2,那么我的输出应该是raboinwless。

(从str1和str2中获取所提到的字符串长度,并将它们组合起来,然后这样做,如果下一次迭代的第一个字符串或第二个字符串的长度不匹配,它可以获取剩余的字符并执行串联。)

我尝试了这个代码,它工作正常,任何改进或建议,它将非常感激。

import java.util.Scanner;

public class practice 
{   
    //input str1 = raines
    // str2 = bowls
    // num = 2
    //expected output = raboinwless
    public static void main(String[] args) 
    {        
        Scanner input = new Scanner(System.in);
        String instr1 = input.nextLine();
        String instr2 = input.nextLine();
        int innum = input.nextInt();
        String outstr="";       
        if(innum > instr1.length() || innum > instr2.length()) {
                outstr = instr1+instr2;
                System.out.println(outstr);
        }else if(innum < instr1.length() || innum < instr2.length()) {
            String[] chunks1 = instr1.split("(?<=\\G.{" + innum + "})");
            String[] chunks2 = instr2.split("(?<=\\G.{" + innum + "})");            
            int itrCount = 0;
            if(chunks1.length > chunks2.length)
                itrCount = chunks1.length;
            else itrCount = chunks2.length;             
                        
                for(int i= 0 ; i< itrCount;i++) {
                    outstr = outstr+chunks1[i];
                    outstr = outstr+chunks2[i];                 
                }
            System.out.println(outstr);
        }
    } 
}
  • 如果我没有任何意义,或者我的提问方式不好,请评论或重组我的问题

共有1个答案

戚泰
2023-03-14

递归版本

public static String substringZip (String str1, String str2, int n) {
    if(str1.length() < n || str2.length() < n)
        return str1 + str2;
    else
        return str1.substring(0, n) + str2.substring(0, n) + substringZip(str1.substring(n), str2.substring(n), n);
}

参数

  • str1-
 类似资料:
  • 我对蔚蓝相当陌生。我想使用 Azure Cosmos DB 构建一个简单且低成本的 MongoDB。在那里,我创建了一个包含两个子网的 VNET。此外,我创建了一个公共 IP 地址,该地址应该是我的终结点,用于向数据库提供数据。第一个子网应充当具有特定 NSG 的防火墙(我不想使用 Azure 防火墙,因为它每月至少花费 720 欧元),而在第二个子网中,Cosmos DB 通过服务终结点连接。

  • 问题内容: 我有一个带有列的表,其中包含如下所示的字符串。 我需要从第二次出现到字符串结尾获取子字符串,并且您可以看到子字符串的长度不是固定的。第一部分并不总是固定的,它可以改变。到目前为止,我正在使用以下代码来实现它。 如您所见,我采用一个任意大的值作为长度来处理可变长度。有更好的方法吗? 问题答案: 您可以与函数结合使用,找到的最后一次出现,还可以使用从字符串末尾获取指定数量的字符。 SQLF

  • 下面的代码给出了最长的回文子序列长度。如何修改代码以获得最长的回文子串长度? 下面是一个示例调用:

  • 我正在尝试加入一个名单: 这不编译说: 然而,这并不抱怨: 有人能给我解释一下原因吗?对于和之间的区别,我也很感激一些说教性的解释,因为我认为我没有理解对。

  • 我有这个问题: 您将获得一个整数 A 和一个整数 k 的数组。您可以将 A 的元素递减到 k 次,目标是生成一个元素都相等的连续子数组。返回可以用这种方式生成的最长的连续子数组的长度。 例如,如果 A 是 [1,7,3,4,6,5] 并且 k 是 6,那么您可以生成 [1,7,3,4-1,6-1-1-1,5-1-1] = [1,7,3,3,3,3],因此您将返回 4。 最佳解决方案是什么?

  • 问题内容: 我喜欢过滤掉字符串长度不等于10的数据。 如果我尝试过滤掉列A或B的字符串长度不等于10的任何行,则尝试这样做。 这工作缓慢,但正在工作。 但是,当A中的数据不是字符串而是数字(有时在read_csv读取输入文件时解释为数字)时,有时会产生错误。 我相信应该有更高效,更优雅的代码来代替。 根据下面的答案和评论,我找到的最简单的解决方案是: 要么 要么 问题答案: 应用于filex.cs