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

给你两个字符串 word1word2 。请你从 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
  • word1word2 由小写英文字母组成

解答:

  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;  // 返回最终结果
};
相关推荐
摘星编程1 小时前
OpenHarmony + RN:Placeholder文本占位
javascript·react native·react.js
一匹电信狗2 小时前
【LeetCode_547_990】并查集的应用——省份数量 + 等式方程的可满足性
c++·算法·leetcode·职场和发展·stl
鱼跃鹰飞3 小时前
Leetcode会员尊享100题:270.最接近的二叉树值
数据结构·算法·leetcode
梵刹古音4 小时前
【C语言】 函数基础与定义
c语言·开发语言·算法
筵陌4 小时前
算法:模拟
算法
摘星编程5 小时前
React Native + OpenHarmony:Spinner旋转加载器
javascript·react native·react.js
We་ct5 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
renhongxia15 小时前
AI算法实战:逻辑回归在风控场景中的应用
人工智能·深度学习·算法·机器学习·信息可视化·语言模型·逻辑回归
CoderCodingNo5 小时前
【GESP】C++四级/五级练习题 luogu-P1223 排队接水
开发语言·c++·算法
民乐团扒谱机5 小时前
【AI笔记】精密光时频传递技术核心内容总结
人工智能·算法·光学频率梳