给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回 合并后的字符串 。
1 <= word1.length, word2.length <= 100word1 和 word2 由小写英文字母组成示例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
根据题目描述,按照顺序将word1和word2进行合并,我们可以采取双指针的方法,也就是定义i和j分别用来访问两个字符串,按照顺序插入新字符串中,然后i++,j++,当有一个字符串访问完时,则将另一个字符串剩下的直接插入新字符串。
先定义合并后的字符串res,获取两个字符串的长度(用于判断是否遍历完),定义“双指针”i和j,设置合并后字符串的长度;
利用while循环判断是否对两个字符串遍历完,没遍历完时将两个字符串的字符依次添加到新字符串后面,遍历完其中一个时则将另一个剩下的元素依次存入字符串;
最后返回res即可。

- class Solution {
- public:
- string mergeAlternately(string word1, string word2) {
- string res;
- int len1=word1.size();//获取字符串1的长度
- int len2=word2.size();//获取字符串2的长度
- int i=0,j=0;//用于访问两个字符串
- res.reserve(len1+len2);//定义结果字符串长度
- while(i
- if(i
- res.push_back(word1[i]);
- i++;
- }
- if(j
- res.push_back(word2[j]);
- j++;
- }
- }
- return res;
- }
- };
-
相关阅读:
The 19th ZCPC -G. Easy Glide
Cisco(十一)—STP
Android控件拖拽后页面刷新回来原始位置问题
Nginx-HTTPS 配置
如何用 Spring Security 集成 CAS 认证 (二)
基于三维GIS的场数据模型研究与实践
JNI中调用Java函数
无需编写一行代码,实现任何方法的流量防护能力
计数类dp,完全背包,900. 整数划分
微信小程序实现点击一块区域,出现一块区域按钮。
-
原文地址:https://blog.csdn.net/m0_59800431/article/details/133831105