提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。
文章目录
- 一、题目
 - 二、思路
 - 三、解决方案
 
一、题目
给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾,返回合并后的字符串 。
 
二、思路
分别使用两个指针word1_position和word2_position来指向word1和word2字符串的首个字符,然后通过StringBuilder组合成最终的结果。当word1_position指针没有超出word1的范围时,就通过charAt()获取word1的首个字符,然后将其添加至StringBuilder对象answer中,然后让word1_position指针移动到下一位。对word2执行相同的操作即可得到最终的答案,然后将StringBuilder类型的answer通过toString()方法转换成字符串类型返回即可。
三、解决方案
语言:Java
 执行耗时:1 ms
 内存消耗:40.8 MB
class Solution {
    public String mergeAlternately(String word1, String word2) {
        int word1_length = word1.length();
        int word2_length = word2.length();
        int word1_position = 0;
        int word2_position = 0;
        StringBuilder answer = new StringBuilder();
		
		// 当word1和word2的指针没有超出word1和word2的范围时
        while (word1_position < word1_length || word2_position < word2_length) {
        	// 获取word1的首个字符然后拼接到answer中 让word1的指针移动到下一个字符
            if (word1_position < word1_length) {
                char ch = word1.charAt(word1_position);
                answer.append(ch);
                word1_position++;
            }
            // 获取word2的首个字符然后拼接到answer中 让word2的指针移动到下一个字符
            if (word2_position < word2_length) {
                char ch = word2.charAt(word2_position);
                answer.append(ch);
                word2_position++;
            }
        }
        // 将StringBuilder转型为String类型返回
        return answer.toString();
    }
}
                

















