题目以及链接:
1768. 交替合并字符串
给你两个字符串
word1
和word2
。请你从word1
开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。返回 合并后的字符串 。
示例 1:
输入:word1 = "abc", word2 = "pqr" 输出:"apbqcr" 解释:字符串合并情况如下所示: word1: a b c word2: p q r 合并后: a p b q c r
拿到题目之后首先分析,两个字符串,要进行合并,并且要交替添加。既然需要用到字符的添加和删除之类的,那么String肯定不行。因为String创建之后就不能更改。自然就想到常用的另外两种StringBuffer,StringBulider。这里博主使用StringBuffer。使用最常见的模拟方法,将word1和word2分别转成StringBuffer,从而对其进行处理,用ans来存储处理完的结果,之后就是两个串交替进行添加,剩下的串再一次性添加。返回时由于要使用String类型,可以使用toString()方法来返回。即可通过
代码如下:
class Solution {public String mergeAlternately(String word1, String word2) {StringBuffer sb1 = new StringBuffer(word1);StringBuffer sb2 = new StringBuffer(word2);StringBuffer ans = new StringBuffer();int i = 0,j = 0 ;int leni = sb1.length(),lenj = sb2.length();while(i < leni&&j < lenj ) {ans.append(sb1.charAt(i));ans.append(sb2.charAt(j));++i;++j;}while(i < leni) ans.append(sb1.charAt(i++));while(j < lenj) ans.append(sb2.charAt(j++)); return ans.toString();}
}