当前位置: 首页 > news >正文

【[LeetCode每日一题】Leetcode 1768.交替合并字符串

Leetcode 1768.交替合并字符串

题目描述:

给定两个字符串 word1word2,以交替的方式将它们合并成一个新的字符串。即,第一个字符来自 word1,第二个字符来自 word2,第三个字符来自 word1,依此类推。如果一个字符串的长度不等于另一个字符串,剩余的字符应该直接添加到合并后的字符串的末尾。

示例 1:

输入: word1 = "abc", word2 = "pqr"
输出: "apbqcr"

示例 2:

输入: word1 = "ab", word2 = "pqrs"
输出: "apbqrs"

示例 3:

输入: word1 = "abcd", word2 = "pq"
输出: "apbqcdd"

提示:

  • 1 <= word1.length, word2.length <= 100
  • word1word2 都只包含小写字母。

Java 实现代码

public class Solution {public String mergeAlternately(String word1, String word2) {StringBuilder result = new StringBuilder();int i = 0, j = 0;// 交替合并while (i < word1.length() && j < word2.length()) {result.append(word1.charAt(i++));result.append(word2.charAt(j++));}// 如果 word1 还有剩余字符,直接添加while (i < word1.length()) {result.append(word1.charAt(i++));}// 如果 word2 还有剩余字符,直接添加while (j < word2.length()) {result.append(word2.charAt(j++));}return result.toString();}
}

解题思路:

本题要求交替合并两个字符串,可以通过以下步骤来实现:

  1. 初始化两个指针:一个指针分别指向 word1word2 的起始位置。
  2. 交替合并:使用循环交替从 word1word2 中取出字符加入到结果字符串中,直到其中一个字符串遍历完。
  3. 处理剩余字符:如果某个字符串未完全遍历完,将剩余的字符直接添加到结果中。

具体步骤

  • 创建一个空的字符串 result 用于存储合并的结果。
  • 使用两个指针分别遍历 word1word2
  • 当两个字符串都未遍历完时,交替地将它们的字符加入 result
  • 如果一个字符串已经遍历完,直接将另一个字符串的剩余部分添加到结果中。

复杂度分析:

  • 时间复杂度:O(m + n),其中 mn 分别是 word1word2 的长度,因为我们需要遍历两个字符串的所有字符。
  • 空间复杂度:O(m + n),用于存储合并后的结果字符串。
http://www.lryc.cn/news/503257.html

相关文章:

  • SRT协议学习
  • 南昌大学《2024年837自动控制原理真题》 (完整版)
  • ASP.NET Core 应用程序的启动与配置:Program.cs 文件的全面解析
  • 2020-12-02 数字过滤
  • 长短期记忆神经网络(LSTM)介绍
  • 数据结构 ——二叉树转广义表
  • chattts生成的音频与字幕修改完善,每段字幕对应不同颜色的视频,准备下一步插入视频。
  • 数据结构开始——时间复杂度和空间复杂度知识点笔记总结
  • 路由策略与策略路由
  • pytorch_fid 安装笔记
  • Qt绘制仪表————附带详细说明和代码示例
  • 百度地图JavaScript API核心功能指引
  • mp4影像和m4a音频无损合成视频方法
  • Ubuntu下将Julia嵌入Jupyter内核
  • openGauss开源数据库实战二十五
  • [C/C++] List相关操作
  • 继电器控制与C++编程:实现安全开关控制的技术分享
  • 题解 - 找子序列(2024.12上海月赛丙组T4)
  • 在centos 7.9上面安装mingw交叉编译工具
  • ubuntu wine mobaxterm找不到串口和解决方案
  • 如何编译安装系统settings设置应用(5.0.0-Release)
  • <项目代码>YOLOv8 车牌识别<目标检测>
  • 协同办公软件新升级:细节优化,让办公更简单
  • 【原创学习笔记】西门子1200 PLC实现变频器控制
  • SQL server学习02-使用T-SQL创建数据库
  • 2024153读书笔记|《春烂漫:新平摄影作品选》——跳绳酷似人生路,起落平常,进退平常,莫惧征途万里长
  • MySQL有哪些高可用方案?
  • 前台进程是什么
  • Redis学习笔记之——学习计划
  • npm : 无法加载文件 D:\nodejs\npm.ps1