交替合并字符串(数组 / 字符串)

66 阅读1分钟

1768. 交替合并字符串

给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。

image.png

public String mergeAlternately(String word1, String word2) {
    int m = word1.length(), n = word2.length(), i = 0, j = 0;

    StringBuilder res = new StringBuilder();
    while (i < m || j < n){
        if (i < m){
            res.append(word1.charAt(i));
            i++;
        }
        if (j < n){
            res.append(word2.charAt(j));
            j++;
        }
    }
    return res.toString();
}

采用的双指针,在每次循环以后,依次进行:

  • 如果i没有超出word1范围就将word1[i]加入答案,并且将i移动一个位置。
  • 如果j没有超出word2范围就将word2[j]加入答案,并且将j移动一个位置。
  • 都超出返回答案即可

运用 StringBuilder的时候应该要记住它的使用方法:

StringBuilder sb = new StringBuilder(); 
sb.append(1); 
sb.append("asd"); 
sb.append(false); 
System.out.println(sb); //1asdfalse

return是使用通过toString()就可以实现把StringBuilder转换为String。

charAt()是返回一个字符串的指定位置的字符

String list ="abcd";
String list2=list.charAt(1);
System.out.print(list2);
 
结果是b