提示:此文章仅作为本人记录日常学习使用,若有存在错误或者不严谨得地方欢迎指正。
文章目录
- 一、题目
- 二、思路
- 三、解决方案
一、题目
给你两个字符串 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();
}
}