当前位置: 首页 > article >正文

算法随笔_37: 交替合并字符串

上一篇:算法随笔_36: 复写零-CSDN博客

=====

题目描述如下:

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

返回 合并后的字符串 。

示例 1:

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

=====

算法思路:

题目要求交替添加字母。我们可以用双指针模拟合并字符串的过程。

设p1,p2两个指针,初始值分别指向两个字符串的起始元素。通过在两个字符串之间交替进行枚举访问元素,然后放入新的字符串中。最后把没有枚举完成的字符串合并到新字符串的末尾。

算法时间复杂度为O(m+n) 。m,n分别为两个字符串的长度。下面是代码实现:

class Solution(object):
    def mergeAlternately(self, word1, word2):
        """
        :type word1: str
        :type word2: str
        :rtype: str
        """
        res=[]
        w1_len=len(word1)
        w2_len=len(word2)
        p1=0
        p2=0
        while p1<w1_len or p2<w2_len:
            if p1<w1_len:
                res.append(word1[p1])
                p1+=1
            if p2<w2_len:
                res.append(word2[p2])
                p2+=1
            
        return "".join(res)
            
        

 

 

 


http://www.kler.cn/a/529697.html

相关文章:

  • 基于Python的简单企业维修管理系统的设计与实现
  • Docker自定义镜像
  • Signature
  • JVM方法区
  • Hive存储系统全面测试报告
  • PyQt6医疗多模态大语言模型(MLLM)实用系统框架构建初探(上.文章部分)
  • 玩转Docker | 使用Docker部署MySQL数据库
  • 解密 Argon2:Java 密码加密的高安全实践与趣味探索
  • 100.2 AI量化面试题:在构建多因子选股模型时,如何有效处理因子之间的共线性问题?请给出具体的解决方案
  • DeepSeek-R1大模型本地化部署
  • 【前端学习路线】前端生态 详细知识点学习路径(附学习资源)
  • leetcode 2187. 完成旅途的最少时间
  • 如何用微信小程序写春联
  • 十一、实战案例
  • Java Web的发展史与SpringMVC入门学习(SpringMVC框架入门案例)
  • 深度学习深度解析:从基础到前沿
  • 基于FPGA的BT1120编解码
  • 女生年薪12万,算不算属于高收入人群
  • 每日一个小题
  • Vue.js `v-memo` 性能优化技巧
  • helm-dashboard为Helm设计的缺失用户界面 - 可视化您的发布,它提供了一种基于UI的方式来查看已安装的Helm图表
  • 根据草图或图片生成网页提示词prompt
  • vue入门到实战 三
  • 基于单片机的盲人智能水杯系统(论文+源码)
  • 93,【1】buuctf web [网鼎杯 2020 朱雀组]phpweb
  • 从实验室到现实,机器人泛化的秘密:Scaling Law如何重塑机器人学习