Leetcode之交替合并字符串(python解答方法)
·
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 <= 100word1和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)
更多推荐


所有评论(0)