
题意:给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回 合并后的字符串 。
解法:
解法1:
1.不知道两个字符串的长度,那么分情况处理,用StringBuilder累加
解法2:
1.在不知道两个链表、字符串、数组的长度的情况下,可以想到用双指针思想去解决
2.声明两个指针,分别从头开始遍历两个字符串,如果遇到末尾,则停止,剩余一个继续,直到两个都到末尾,停止
解题遇到的问题
无
后续需要总结学习的知识点
无
##解法1
class Solution {
public String mergeAlternately(String word1, String word2) {
StringBuilder builder = new StringBuilder();
if (word1 == null && word2 == null) {
return builder.toString();
}
if (word2 == null) {
return builder.append(word1).toString();
}
if (word1 == null) {
return builder.append(word2).toString();
}
if (word1.length() > word2.length()) {
for (int i = 0; i < word2.length(); i++) {
builder.append(Character.toString(word1.charAt(i)));
builder.append(Character.toString(word2.charAt(i)));
}
builder.append(word1.substring(word2.length()));
} else {
for (int i = 0; i < word1.length(); i++) {
builder.append(Character.toString(word1.charAt(i)) + Character.toString(word2.charAt(i)));
}
builder.append(word2.substring(word1.length()));
}
return builder.toString();
}
}
#解法2
class Solution {
public String mergeAlternately(String word1, String word2) {
StringBuilder builder = new StringBuilder();
if (word1 == null && word2 == null) {
return builder.toString();
}
if (word2 == null) {
return builder.append(word1).toString();
}
if (word1 == null) {
return builder.append(word2).toString();
}
for (int i = 0, j = 0; i < word1.length()
|| j < word2.length(); i++, j++) {
if (i<word1.length()) {
builder.append(word1.charAt(i));
}
if (j<word2.length()) {
builder.append(word2.charAt(j));
}
}
return builder.toString();
}
}
网友评论