算法练习-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;  // 返回最终结果
};
相关推荐
IronMurphy2 小时前
【算法四十三】279. 完全平方数
算法
墨染天姬2 小时前
【AI】Hermes的GEPA算法
人工智能·算法
一粒黑子2 小时前
【实战解析】阿里开源 PageAgent:纯前端 GUI Agent,一行JS让网页支持自然语言操控
前端·javascript·开源
IT枫斗者2 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
papership2 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_796826522 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
Beginner x_u3 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
我叫汪枫4 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch4 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI4 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn