前言
博主最近考试了,没时间刷难题了,刷一下简单题练练手,哈哈哈
题目要求:
整体思路
很简单,整两个指针分别取word1和word2的字符,因为看题意,先word1,后word2,所以弄一个flag搞出取数顺序就行了,然后最后把谁剩下了统一加入答案就行。
具体代码
class Solution {
public:
string mergeAlternately(string word1, string word2) {
string ans = "";//答案
int i = 0, j = 0;//双指针
int flag = 1;//取数顺序,奇数取word1,偶数取word2
while (i < word1.size() && j < word2.size()) {//两个word都没空
if (flag % 2 != 0) {
ans += word1[i];
i++;
}
else {
ans += word2[j];
j++;
}
flag++;//换顺序
}
while (i < word1.size()) {//把剩下 的补全
ans += word1[i];
i++;
}
while (j < word2.size()) {{//把剩下 的补全
ans += word2[j];
j++;
}
return ans;
}
};
(所有代码均已在力扣上运行无误)
经测试,该代码运行情况是(经过多次测试所得最短时间):
时间复杂度:O(word1.size()+word2.size()),遍历了两个单词长度。