【Leetcode每日一题1768:交替合并字符串~暴力模拟+双指针】

LeetCode每日一题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 由小写英文字母组成

解题思路

解题思路1:通过获取俩个字符串的长度,其中较短的那个字符串的长度是接下来每次循环遍历的长度。通过模拟将每个字符串的位置对应的字符都进行拼接,最后将最长的字符拼接到最后的结果中。
解题思路2:通过俩个指针,分别指向俩个字符串对应的下标位置,只要他们对应的指针有一个满足不越界,每回都进行拼接相应下标位置的元素。最后将结果返回。

实现思路

实现思路1:暴力模拟
class Solution {
    public String mergeAlternately(String word1, String word2) {
        int n1=word1.length();
        int n2=word2.length();
        StringBuilder sb=new StringBuilder("");
        if(n1<n2){
            for(int i=0;i<n1;i++){
                sb.append(word1.charAt(i)+""+word2.charAt(i));
            }
            sb.append(word2.substring(n1));
        }else if(n1>n2){
            for(int i=0;i<n2;i++){
                sb.append(word1.charAt(i)+""+word2.charAt(i));
            }
            sb.append(word1.substring(n2));
        }else{
            for(int i=0;i<n1;i++){
                sb.append(word1.charAt(i)+""+word2.charAt(i));
            }
        }
        return sb.toString();
    }
}
实现思路2:双指针
class Solution {
    public String mergeAlternately(String word1, String word2) {
        int m = word1.length(), n = word2.length();
        int i = 0, j = 0;
        StringBuilder ans = new StringBuilder();
        while (i < m || j < n) {
            if (i < m) {
                ans.append(word1.charAt(i));
                ++i;
            }
            if (j < n) {
                ans.append(word2.charAt(j));
                ++j;
            }
        }
        return ans.toString();
    }
}

运行结果

实现思路1运行结果:

在这里插入图片描述

实现思路2运行结果:

在这里插入图片描述

好了,本篇文章到这里就结束了,每日更新中~ _ ~

算法创作|交替合并字符串问题解决方法 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。问题描述给你两个字符串word1和word2.请你给你两个字符串word1和word2。请你从w... 阅读详情

相关推荐

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

模拟/双指针

爱写bug的王六六 377

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"...

allway2的博客 1018

Camera 基础知识

Raw Sensor输出的Data格式为Raw,图像的效果处理使用BB端的ISP,BB端接收Raw data后进行一系列的图像处理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要针对不同的模组进行效果调试,Raw sensor是目前的主流,数据量比YUV Sensor小(RAW10 格式的sensor 1个pixel 10个bit)使用平台ISP处理,能支持较大的size。不过,相位对焦并不是那么完美,它对光线的要求就比较高,在弱光拍摄环境下,相位对焦就无能威力了。

手机-手表蓝牙开发工程师的博客 3062

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

依次交替排列字符串!

m0_62946714的博客 448

保姆级教程:在摩尔线程MTT S80上快速部署Ollama运行DeepSeek R1模型(附性能测试)

本文提供了一份详细的保姆级教程,指导用户在摩尔线程MTT S80显卡上部署Ollama并运行DeepSeek R1模型。内容涵盖从驱动安装、Docker环境配置到模型拉取、性能测试的全流程,并分享了实测数据与优化技巧,旨在帮助开发者快速在国产GPU平台上实现高效的大语言模型推理。

weixin_29091837的博客 523

Oracle19c-集群节点重新添加

Oracle RAC集群在极端情况下,如硬件、主机,集群软件损坏,导致集群节点永久无法使用,需要对集群节点进行修复,删除节点集群信息并重新加入集群,以恢复集群原有的架构。 本文主要讲述一套两节点的Oracle19c RAC集群,节点一orcl01由于主机异常无法正常启动,在对主机进行重装之后,需要将orcl01节点重新加入集群的操作步骤。环境信息: 操作系统:Linux 7 RAC集群:19C 主机节点:orcl0...

sinat_36757755的博客 2351

【LeetCode】1768.交替合并字符串

LeetCode 刷题

kezade的blog 499

最小二乘拟合圆:使用拉格朗日乘子法

在本文中,我们将探讨如何使用拉格朗日乘子法来进行最小二乘拟合,并将其应用于拟合一个空间圆。首先,我们需要定义问题。给定一组二维或三维数据点,我们的目标是找到一个圆,使得这些数据点到圆的距离的平方和最小。为了找到最小值,我们需要计算拉格朗日函数的偏导数,并令其等于零。通过解决优化问题,我们可以找到最佳拟合的圆,以最小化数据点到圆的距离的平方和。其中,(x, y) 是圆心的坐标,r 是圆的半径,(xi, yi) 是数据点的坐标。其中,g(x, y, r) = 0 是约束条件,C 是常数,λ 是拉格朗日乘子。

TechProX的博客 475

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

解释:注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。解释:注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。输入:word1 = "abc", word2 = "pqr"输入:word1 = "ab", word2 = "pqrs"输入:word1 = "abcd", word2 = "pq"合并后: a p b q c r。合并后: a p b q r s。输出:"apbqcr"输出:"apbqrs"输出:"apbqcd"

2401_88200736的博客 335

基于R-CNN深度学习的生活垃圾检测与分类系统:数据集、模型和UI界面的完整实现

我们将使用一个公开的垃圾分类数据集来训练我们的模型。一个常见的数据集是TACO数据集(Trash Annotations in Context),该数据集包含多种垃圾类别,适用于垃圾分类任务。TACO数据集中的图像标注了垃圾的类别以及其在图像中的位置,适合用于目标检测任务。图片数据:每张图片中包含不同种类的垃圾。标签文件:每个图像有相应的标签文件,标注了图像中垃圾的类别、位置(通常为边界框坐标)等信息。dataset/images/image1.jpgimage2.jpg......其中,

YOLO 1101

【WRF-Urban数据集】 WRF 模型城市冠层参数 GloUCP 的使用

【数据集】 WRF 模型城市冠层参数 GloUCP 的使用

WW、forever的博客 478

leetcode——229场周赛

229场周赛地址 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 class Solution { public: string mergeAlternately(string word1, string word2) { string res = ""; int size1 = word1.size(); int size2 = w

一枚菜鸡 390

Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)

在最近的后端开发中,多多少少会发现有很多if-else语句,如果条件过多则会造成整体代码看起来非常臃肿。本篇博客汇总了我对工厂模式和策略模式的理解,以及我是如何把它们巧妙运用在实际项目当中的一些技巧进行了分享,如有问题,欢迎评论区讨论!

黄团团的个人博客 2612

每日两道leetcode(今天开始刷基础题模块——这次是之前的修改版)

开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。注意,word2 比 word1 长,"rs" 需要追加到合并后字符串的末尾。注意,word1 比 word2 长,"cd" 需要追加到合并后字符串的末尾。合并后: a p b q r s。合并后: a p b q c d。合并后: a p b q c r。

XiaoyaoCarter的博客 533

maya导入导出bvh 自动 脚本

maya打开bvh脚本

jacke121的专栏 1550

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

leetcode交替合并字符串

weixin_46247163的博客 479

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

交替合并字符串

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

wjlo1的博客 613

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

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 =

weixin_45929885的博客 1580

python学习-zip/unzip

是一个 Python 内置函数,用于将多个可迭代对象(如列表、元组等)中对应位置的元素打包成元组,然后返回一个迭代器,这个迭代器生成了这些元组。函数将返回一个迭代器,这个迭代器会生成由传入的可迭代对象中对应位置的元素组成的元组。如果传入的可迭代对象长度不一致,函数会以最短的可迭代对象长度为准。

qq_43091806的博客 907

【每日一题】力扣1768. 交替合并字符串

每日一题

C_Ryson的博客 827

字符串交替合并问题

问题: 给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1: 输入:word1 = "abc", word2 = "pqr" 输出:"apbqcr" 解释:字符串合并情况如下所示: word1:  a   b   c word2:    p   q   r 合并后:  a p b q c r

m0_73892800的博客 384

Python zip, unzip, zip_longest的用法

本文简单介绍python中的zip()方法的使用,并相应介绍与之相关联的itertools模块中的zip_longest()。简而言之,Python中的zip()方法是用于提高并行迭代(parallel iteration)的效率的。

chenxy_bwave的专栏 8766

【交替合并字符串】代码详解

通过交替从。

m0_49101942的博客 531

LeetCode基础编程交替合并字符串

python初学者,没看懂力扣预给的代码,所以这段代码在力扣上是不能运行的,只是一个解决问题的代码

weixin_59912996的博客 514

Go——两个[]byte数组合并成一个[]byte

合并 []byte 数组方式一使用 join 函数测试方式二使用 bytes.Buffer测试方式三使用 append ...测试输出 方式一 使用 join 函数 func BytesCombine1(pBytes ...[]byte) []byte { length := len(pBytes) s := make([][]byte, length) for index := 0; index < length; index++ { s[index] = pBytes[index] }

WU2629409421perfect的博客 1万+

交替合并字符串(打卡第一天)

交替合并字符串(打卡第一天)

weixin_51186539的博客 549
上一篇: 【Java中23种面试常考的设计模式之策略模式(Strategy)---行为型模式】
下一篇: 【Java中23种面试常考的设计模式之迭代器模式(Iterator)---行为型模式】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值