交替合并字符串
题目
给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
代码
1.0
public static void main(String[] args) {
Scanner sc = new Scanner(new BufferedInputStream(System.in));
String word1 = sc.next();
String word2 = sc.next();
char[] arr1 = word1.toCharArray();
char[] arr2 = word2.toCharArray();
char[] arr3 = new char[word1.length() + word2.length()];
int len = Math.min(word1.length(),word2.length());
if(word1.length() == len){
for(int i = 0;i < 2 * len;i++){
if(i % 2 == 0){
arr3[i] = arr1[i / 2];
}else{
arr3[i] = arr2[i / 2];
}
}
for(int j = 0;j < word2.length() - len;j++){
arr3[2 * len + j] = arr2[len + j];
}
}else{
for(int i = 0;i < 2 * len;i++){
if(i % 2 == 0){
arr3[i] = arr1[i / 2];
}else{
arr3[i] = arr2[i / 2];
}
}
for(int j = 0;j < word1.length() - len;j++){
arr3[2 * len + j] = arr1[len + j];
}
}
String res = new String(arr3);
System.out.println(res);
}
2.0
class Solution {
public String mergeAlternately(String word1, String word2) {
int m = word1.length(), n = word2.length();
int i = 0, j = 0;
StringBuilder ans = new StringBuilder();
while (i < m || j < n) {
if (i < m) {
ans.append(word1.charAt(i));
++i;
}
if (j < n) {
ans.append(word2.charAt(j));
++j;
}
}
return ans.toString();
}
}