1.题目介绍:

给你两个字符串 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 由小写英文字母组成
2.题目解答:

 思路:

  a.首先是交替合并,然后多的会直接加在字符串尾部:所以我会找出长度更小的一个字符串

  b.因为需要一直对两个字符串进行操作,所以我选择使用一个新的变量new进行存储字符串

  c.因为不知道哪个字符串长,所以使用字符串切片,将后续的字符串加入到新的变量new中

class Solution:
    def mergeAlternately(self, word1: str, word2: str) -> str:
        //找出长度更短的字符串进行保存
        min_len=min(len(word1),len(word2))
        //zip是将两个字符串交替打包成元组,每一组都复制给a和b
        //join是将这些连接起来成一个字符串。有时候也是将其他类型转换未字符串
        //' '内是分隔符,也可以什么都不屑
        new=''.join(a+b for a,b in zip(word1,word2))
        //将剩余的字符串加起来
        new=new+word1[min_len:]+word2[min_len:]
        return new

如果觉得上述比较难弄懂:可以参考下面的解法,思路都是一样的:


def mergeAlternately(self, word1: str, word2: str) -> str:
    min_len = min(len(word1), len(word2))
    result = []
    for i in range(min_len):
        result.append(word1[i])
        result.append(word2[i])
    result.append(word1[min_len:])
    result.append(word2[min_len:])
    return ''.join(result)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐