算法练习-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;  // 返回最终结果
};
相关推荐
请站在我身后18 分钟前
无声视频自动配音效,开源模型thinksound 和mmaudio复现
人工智能·深度学习·算法·计算机视觉·aigc
屁股割了还要学30 分钟前
【C语言进阶】题目练习(2)
c语言·开发语言·c++·学习·算法·青少年编程
F2E_Zhangmo1 小时前
基于cornerstone3D的dicom影像浏览器 第二章,初始化页面结构
前端·javascript·vue·cornerstone3d·cornerstonejs
DoraBigHead1 小时前
手写 `new`、`call`、`apply`、`bind` + V8 函数调用机制解密
前端·javascript·面试
Mr_Xuhhh1 小时前
Qt窗口(2)-工具栏
java·c语言·开发语言·数据库·c++·qt·算法
JQLvopkk2 小时前
C#通过HslCommunication连接西门子PLC1200,并防止数据跳动的通用方法
前端·javascript·算法
艾莉丝努力练剑2 小时前
【数据结构与算法】数据结构初阶:详解顺序表和链表(五)——双向链表
c语言·开发语言·数据结构·学习·算法
李昊哲小课2 小时前
支持向量机SVM
人工智能·算法·机器学习·支持向量机·数据挖掘·sklearn
jndingxin2 小时前
OpenCV多尺度图像增强算法函数BIMEF()
人工智能·opencv·算法
算法_小学生2 小时前
Hinge Loss(铰链损失函数)详解:SVM 中的关键损失函数
开发语言·人工智能·python·算法·机器学习·支持向量机