LeetCode 1768. 交替合并字符串【字符串,双指针】

  • Post author:
  • Post category:其他





1768. 交替合并字符串

给你两个字符串

word1



word2

。请你从

word1

开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。

返回

合并后的字符串

示例 1:

输入:word1 = “abc”, word2 = “pqr”

输出:“apbqcr”

解释:字符串合并情况如下所示:

word1: a b c

word2: p q r

合并后: a p b q c r

示例 2:

输入:word1 = “ab”, word2 = “pqrs”

输出:“apbqrs”

解释:注意,word2 比 word1 长,“rs” 需要追加到合并后字符串的末尾。

word1: a b

word2: p q r s

合并后: a p b q r s

示例 3:

输入:word1 = “abcd”, word2 = “pq”

输出:“apbqcd”

解释:注意,word1 比 word2 长,“cd” 需要追加到合并后字符串的末尾。

word1: a b c d

word2: p q

合并后: a p b q c d

提示:


1 <= word1.length, word2.length <= 100



word1



word2

由小写英文字母组成

  • Java
class Solution {
    public String mergeAlternately(String word1, String word2) {
        StringBuilder res = new StringBuilder();
        int i = 0, j = 0;
        while (i < word1.length() || j < word2.length()) {
            if (i < word1.length()) res.append(word1.charAt(i++));
            if (j < word2.length()) res.append(word2.charAt(j++));
        }
        return res.toString();
    }
}
class Solution {
    public String mergeAlternately(String word1, String word2) {
        StringBuilder res = new StringBuilder();
        boolean flag = true;
        int i = 0, j = 0;
        while (i < word1.length() && j < word2.length()) {
            if (flag) res.append(word1.charAt(i++));
            else res.append(word2.charAt(j++));
            flag = !flag;
        }
        if (i < word1.length()) res.append(word1.substring(i));
        else if (j < word2.length()) res.append(word2.substring(j));
        return res.toString();
    }
}
  • C++
class Solution {
public:
    string mergeAlternately(string word1, string word2) {
		int i = 0, n = word1.size(), m = word2.size();
		string res;
		res.reserve(n + m);
		while (i < n || i < m) {
			if (i < n) res.push_back(word1[i]);
			if (i < m) res.push_back(word2[i]);
			i++;
		}
		return res;
	}
};



版权声明:本文为weixin_52152676原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。