1768. 交替合并字符串

1768. 交替合并字符串

给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。

返回 合并后的字符串 。

示例 1:

复制代码
输入:word1 = "abc", word2 = "pqr"
输出:"apbqcr"
解释:字符串合并情况如下所示:
word1:  a   b   c
word2:    p   q   r
合并后:  a p b q c r

示例 2:

复制代码
输入:word1 = "ab", word2 = "pqrs"
输出:"apbqrs"
解释:注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。
word1:  a   b 
word2:    p   q   r   s
合并后:  a p b q   r   s

示例 3:

复制代码
输入:word1 = "abcd", word2 = "pq"
输出:"apbqcd"
解释:注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。
word1:  a   b   c   d
word2:    p   q 
合并后:  a p b q c   d

提示:

  • 1 <= word1.length, word2.length <= 100
  • word1 和 word2 由小写英文字母组成

题解:

java 复制代码
class Solution {
    public String mergeAlternately(String word1, String word2) {
        int minLen = Math.min(word1.length(), word2.length());
        StringBuilder sb = new StringBuilder("");
        for (int i = 0; i < minLen; i++) {
            sb.append(word1.charAt(i)).append(word2.charAt(i));
        }
       return sb.append(word1.substring(minLen)).append(word2.substring(minLen)).toString();
    }
}

笔记:

  1. int minLen = Math.min(word1.length(), word2.length());

    求两个字符串较短的那个,以它作为循环的限制;

  2. substring(); 截取字符串中介于两个指定下标之间的字符。

    用法:

    1. 两个参数:

    字符串.substring(参数1,参数2);

    参数1:字符串截取的起始下标,非负的整数

    如果此参数是0,则是从字符串的第一个字符开始截取

    参数2:截取结束位置的索引下标

    注意:截取的结果,不包括结束位置的字符

    示例:

    java 复制代码
    String str="abcdefghijklmn";
    String res=str.substring(2,6);
    System.out.println(res);
    结果res为:"cdef"
    1. 一个参数:
      字符串.substring(参数);
      参数:字符串截取的起始下标
      结果:从起始位置至字符串末尾的字符串
      示例:
    java 复制代码
    String str="abcdefghijklmn";
    String res=str.substring(3);
    System.out.println(res);
    结果res为:"defghijklmn"
  3. charAt(i) 函数 是获取字符串中i+1位置的字符

    eg :

    java 复制代码
    String str = "abc";
    //从字符串中取字符
    char ch = str.charAt(0); //第一个字符
    char ch2 = str.charAt(1);// 第二个字符
    结果res为: ch:a, ch2:b
  4. Java中append()方法

    1. Java中的StringBuffer/StringBuilder 类是动态字符串数组。
      StringBuilder :JDK5.0提供,运行效率快、线程不安全。(单)
      StringBuffer:JDK1.0提供,运行效率慢、线程安全。(多)

    概念:可在内存中创建可变的缓冲空间,存储频繁改变的字符串。

    优点:执行效率高于String。

    1. StringBuffer/StringBuilder 类包含append()方法,append()方法相当于"+",将指定的字符串追加到此字符序列。

    2. StringBuffer/StringBuilder.append()追加的字符串在同一个内存地址。

    eg:

    java 复制代码
    public class Test{
    public static void main(String args[]){
    StringBuffer sBuffer = new StringBuffer("aaa");
    	sBuffer.append("bbb");
    	sBuffer.append("ccc");
    	sBuffer.append("ddd");
    	System.out.println(sBuffer);  
    	}
    }
    结果res为: aaabbbcccddd
相关推荐
Patrick在香港7 分钟前
你写的「比较 token」函数,正在用 36 纳秒泄露密码:时序攻击实测
python·安全·标准库·时序攻击·常量时间
蜗牛互联网8 分钟前
Python Agent 工具调用:审批令牌、参数白名单和累计预算
java·开发语言·人工智能·windows·后端·python
维克兜率天36 分钟前
【维克】统计套利:寻找市场的“定价误差“
人工智能·python·算法
承渊政道40 分钟前
【Python编程—从入门到实践】(让程序记得、恢复并解释失败:Python 文件、异常与JSON系统教程)
开发语言·python·pycharm·json·异常处理
一水鉴天1 小时前
声调韵的序:从古汉语音韵到系统科学语言的场效应推演 20261013(千问)
开发语言·人工智能
郭庆汝1 小时前
(六)MCP+A2A之——Playwright与BrowserUse:让AI学会像人类一样使用浏览器
开发语言·python
Yolanda_20221 小时前
26.网络模型的保存与读取
人工智能·pytorch·python
涉密IT资质笔记1 小时前
涉密资质投入产出分析模型:时间成本、四块成本构成与 ROI 决策框架
java·开发语言·算法
北风toto1 小时前
KMP 算法详解:从暴力匹配到 O(n+m) 的字符串搜索
java·开发语言·算法
william_yangshun1 小时前
WordCraft 观察:纯 Rust 重写文字处理器,把文档变成可编程对象
开发语言·后端·rust·文档自动化