首页 > 其他分享 >1768. 交替合并字符串

1768. 交替合并字符串

时间:2023-09-04 14:44:26浏览次数:42  
标签:合并 len 交替 1768 word1 str word2 字符串

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

返回 合并后的字符串 。

 

示例 1:

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

示例 2:

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

示例 3:

输入: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 由小写英文字母组成

+++++++++++++++++++++++++++++++

我想到的解法

class Solution:
    def mergeAlternately(self, word1: str, word2: str) -> str:
        w1_len = len(word1)
        w2_len = len(word2)
        len_ = w1_len
        word = word2
        if w1_len > w2_len:
            len_ = w2_len
            word = word1
        res = ''
        for i in range(len_):
            res += word1[i] + word2[i]
        res += word[len_:]
        return res

官方答案

class Solution:
    def mergeAlternately(self, word1: str, word2: str) -> str:
        m, n = len(word1), len(word2)
        i = j = 0

        ans = list()
        while i < m or j < n:
            if i < m:
                ans.append(word1[i])
                i += 1
            if j < n:
                ans.append(word2[j])
                j += 1
        
        return "".join(ans)

作者:力扣官方题解
链接:https://leetcode.cn/problems/merge-strings-alternately/solutions/1913930/jiao-ti-he-bing-zi-fu-chuan-by-leetcode-ac4ih/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

另外一种解法

from itertools import zip_longest


class Solution:
    def mergeAlternately(self, word1: str, word2: str) -> str:
        return ''.join(a + b for a, b in zip_longest(word1, word2, fillvalue=''))


print(Solution().mergeAlternately(word1="abcd", word2="pq"))

 

标签:合并,len,交替,1768,word1,str,word2,字符串
From: https://www.cnblogs.com/daizichuan/p/17676961.html

相关文章

  • 分享一个Python字符串替换的基础题目(下篇)
    大家好,我是皮皮。一、前言上一篇文章,【瑜亮老师】和【凡人不烦人】引申了下字符串处理的题目,如下所示:扩展一下,下面的结果是什么:strs='abbacba'print(strs.lstrip('ab'))print(strs.rstrip('ab'))二、实现过程这里【FANG.J】还是有点东西的,全部都回答正确了。说明是完......
  • 7 字符串
    1驻留机制2查询index():查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出ValueErrorrindex():查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出ValueErrorfind():查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1rfind():查找子串s......
  • C语言模拟实现字符串操作函数
    在c语言中,有许多的库函数strlen就是其中的一个该库函数的功能是求字符串的长度接下来就解释一下strlen的工作流程我先定义一个数组:chararr[]="abcdef";strlen就是在字符串中找到\0就停止intmy_strlen(char*p){ intcount=0; assert(p!=NULL);//assert是断言,函数形参有指......
  • 剑指 Offer 58 - II. 左旋转字符串
    剑指Offer58-II.左旋转字符串翻转前n个字符翻转其余字符翻转所有字符classSolution{publicStringreverseLeftWords(Strings,intn){char[]ch=s.toCharArray();reverse(ch,0,n-1);reverse(ch,n,ch.length-1);rever......
  • 统计一个字符串的 k 子序列美丽值最大的数目
    k子序列指的是s的一个长度为k的子序列,且所有字符都是唯一的,也就是说每个字符在子序列里只出现过一次。定义f(c)为字符c在s中出现的次数。k子序列的美丽值定义为这个子序列中每一个字符c的f(c)之和1.贪心+组合枚举贪心选美丽值最大的字符,对于最后美丽值相......
  • 字符串操作函数2
    strncat的用法,注意要追加\0。intmain(){ //strncmp字符串比较函数 constchar*p1="abcdef"; constchar*p2="abcqwer"; intret=strncmp(p1,p2,3); printf("%d\n",ret); return0;}intmain(){ char*p1="abcdef"; char......
  • Java:commons-codec实现byte数组和16进制字符串转换
    目录commons-codec实现原理封装StringUtil类commons-codec文档https://commons.apache.org/proper/commons-codec/https://mvnrepository.com/artifact/commons-codec/commons-codec坐标<dependency><groupId>commons-codec</groupId><artifactId>com......
  • Java使用有限状态机算法实现判断字符串是否合法
    题目描述请根据给出的正则表达式来验证邮箱格式是否合法,如果用户输入的格式合法则输出「邮箱格式合法」,否则输出「邮箱格式不合法」。正确格式对应的正则表达式"[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+";输入:[email protected]输出:邮箱格式合法分析最容易想到的是正则表达......
  • Leetcode 剑指 Offer 58 - II. 左旋转字符串(Zuo xuan zhuan zi fu chuan lcof)
    题目链接字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入:s="abcdefg",k=2输出:"cdefgab"示例2:输入:s=......
  • # yyds干货盘点 # 分享一个Python字符串替换的基础题目(中篇)
    大家好,我是皮皮。一、前言上一篇文章,【瑜亮老师】引申了下字符串处理的题目,如下所示:扩展一下,下面的结果是什么:strs='abbacabbc'print(strs.strip('ab'))二、实现过程这里【王子】还是有点东西的,全部都回答正确了。那么再扩展下呢?你能够回答的出来吗?下一篇文章,我们揭晓答案。三、......