【每日一题】力扣1768. 交替合并字符串

题目以及链接:

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();
    }
}

你可能感兴趣的:(每日一题,java,力扣)