• Leetcode 75——1768.交替合并字符串 解题思路与具体代码【C++】


    一、题目描述与要求

    1768. 交替合并字符串 - 力扣(LeetCode)

    题目描述

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

    返回 合并后的字符串 。

    提示:

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

    示例

    示例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
    

    二、解题思路

    根据题目描述,按照顺序将word1和word2进行合并,我们可以采取双指针的方法,也就是定义i和j分别用来访问两个字符串,按照顺序插入新字符串中,然后i++,j++,当有一个字符串访问完时,则将另一个字符串剩下的直接插入新字符串。

    先定义合并后的字符串res,获取两个字符串的长度(用于判断是否遍历完),定义“双指针”i和j,设置合并后字符串的长度;

    利用while循环判断是否对两个字符串遍历完,没遍历完时将两个字符串的字符依次添加到新字符串后面,遍历完其中一个时则将另一个剩下的元素依次存入字符串;

    最后返回res即可。


    三、具体代码

    1. class Solution {
    2. public:
    3. string mergeAlternately(string word1, string word2) {
    4. string res;
    5. int len1=word1.size();//获取字符串1的长度
    6. int len2=word2.size();//获取字符串2的长度
    7. int i=0,j=0;//用于访问两个字符串
    8. res.reserve(len1+len2);//定义结果字符串长度
    9. while(i
    10. if(i
    11. res.push_back(word1[i]);
    12. i++;
    13. }
    14. if(j
    15. res.push_back(word2[j]);
    16. j++;
    17. }
    18. }
    19. return res;
    20. }
    21. };

  • 相关阅读:
    The 19th ZCPC -G. Easy Glide
    Cisco(十一)—STP
    Android控件拖拽后页面刷新回来原始位置问题
    Nginx-HTTPS 配置
    如何用 Spring Security 集成 CAS 认证 (二)
    基于三维GIS的场数据模型研究与实践
    JNI中调用Java函数
    无需编写一行代码,实现任何方法的流量防护能力
    计数类dp,完全背包,900. 整数划分
    微信小程序实现点击一块区域,出现一块区域按钮。
  • 原文地址:https://blog.csdn.net/m0_59800431/article/details/133831105