美文网首页
Leetcode 1768. 交替合并字符串

Leetcode 1768. 交替合并字符串

作者: itbird01 | 来源:发表于2022-02-05 00:02 被阅读0次
题目.png

题意:给你两个字符串 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();
    }
}

相关文章

网友评论

      本文标题:Leetcode 1768. 交替合并字符串

      本文链接:https://www.haomeiwen.com/subject/xabckrtx.html