给你两个字符串 word1
和 word2
。请你从 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
word1
和word2
由小写英文字母组成
解答:
- 这个是当时学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)
- 这个是今天写的(注释是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; // 返回最终结果
};