算法练习-Day1-交替合并字符串

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

返回 合并后的字符串 。

示例 1:

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

示例 2:

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

示例 3:

css 复制代码
输入: 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. 这个是当时学Python时写的(注释是D老师生成的)
python 复制代码
class Solution(object):
    def mergeAlternately(self, word1, word2):
        """
        :type word1: str
        :type word2: str
        :rtype: str
        """
        loop_count = 0  # 初始化循环计数器
        rStr = ''       # 初始化结果字符串

        # 情况1:word1 和 word2 长度相等
        if len(word1) == len(word2):
            while loop_count < len(word1):
                # 交替拼接 word1 和 word2 的字符
                rStr += (word1[loop_count] + word2[loop_count])
                loop_count += 1  # 计数器递增

        # 情况2:word1 比 word2 短
        if len(word1) < len(word2):
            rest_str = word2[len(word1):]  # 截取 word2 剩余的部分
            while loop_count < len(word1):
                # 交替拼接 word1 和 word2 的字符
                rStr += (word1[loop_count] + word2[loop_count])
                loop_count += 1
            rStr += rest_str  # 拼接 word2 剩余的部分

        # 情况3:word1 比 word2 长
        if len(word1) > len(word2):
            rest_str = word1[len(word2):]  # 截取 word1 剩余的部分
            while loop_count < len(word2):
                # 交替拼接 word1 和 word2 的字符
                rStr += (word1[loop_count] + word2[loop_count])
                loop_count += 1
            rStr += rest_str  # 拼接 word1 剩余的部分

        return "".join(rStr)  # 返回最终结果(这里直接返回 rStr 即可,无需用 join)
  1. 这个是今天写的(注释是D老师生成的)
js 复制代码
var mergeAlternately = function(word1, word2) {
    var len1 = word1.length,  // 获取 word1 的长度
        len2 = word2.length;  // 获取 word2 的长度
    var min = len1 < len2 ? len1 : len2;  // 计算两字符串的最小长度
    var r_str = '';  // 初始化结果字符串

    // 交替拼接两字符串的前 min 个字符
    for(i = 0; i < min; i++) {
        r_str += word1[i] + word2[i];  // 拼接 word1 和 word2 的当前字符
    }

    // 拼接 word1 剩余的部分(如果有)
    r_str += word1.slice(min, len1);
    // 拼接 word2 剩余的部分(如果有)
    r_str += word2.slice(min, len2);

    return r_str;  // 返回最终结果
};
相关推荐
Tisfy1 小时前
LeetCode 2333.最小差值平方和:排序 + 数学计算(不用二分)
数学·算法·leetcode·题解·贪心·排序
aqiu1111111 小时前
【C++算法打怪专栏】LeetCode 217. 存在重复元素(解法总结)
c++·算法·leetcode
yi0112 小时前
DAY28: LeetCode 111. 二叉树的最小深度
人工智能·笔记·python·算法·leetcode·二叉树·递归
wuyk5552 小时前
27.LeetCode 2265. 统计值等于子树平均值的节点数 —— 后序遍历实战
stm32·单片机·嵌入式硬件·算法
xiangyun613 小时前
C++ list 模拟实现(二):const迭代器与反向迭代器,模板的黑魔法
开发语言·数据库·c++·算法·stl·list
xxwl5853 小时前
三、区域赛算法模版第三章---字符串相关算法
笔记·学习·算法
信奥卷王3 小时前
[GESP202509 六级] 划分字符串(含视频)
数据结构·算法
酒醉的胡铁3 小时前
相似度搜索的常见算法
算法·ai
局部有解3 小时前
Leetcode Hot100 - 最长连续序列
算法·leetcode·职场和发展
行者全栈架构师4 小时前
给开源 Rust 工具加一个新检查项,TRAE 帮我从想法跑到构建产物:全链路实战
前端·算法·架构