1 minute read

You are given two strings word1 and word2. Merge the strings by adding letters in alternating order, starting with word1. If a string is longer than the other, append the additional letters onto the end of the merged string.

Return the merged string.

Example 1:

Input: word1 = “abc”, word2 = “pqr” Output: “apbqcr” Explanation: The merged string will be merged as so: word1: a b c word2: p q r merged: a p b q c r Example 2:

Input: word1 = “ab”, word2 = “pqrs” Output: “apbqrs” Explanation: Notice that as word2 is longer, “rs” is appended to the end. word1: a b word2: p q r s merged: a p b q r s Example 3:

Input: word1 = “abcd”, word2 = “pq” Output: “apbqcd” Explanation: Notice that as word1 is longer, “cd” is appended to the end. word1: a b c d word2: p q merged: a p b q c d

/**
 * @param {string} word1
 * @param {string} word2
 * @return {string}
 */
var mergeAlternately = function(word1, word2) {
    const merged = [];
  const len1 = word1.length;
  const len2 = word2.length;
  const maxLength = Math.max(len1, len2);

  for (let i = 0; i < maxLength; i++) {
    if (i < len1) {
      merged.push(word1[i]);
    }
    if (i < len2) {
      merged.push(word2[i]);
    }
  }

  return merged.join('');
};

The function initializes an empty array merged to store the merged string and calculates the lengths of word1 and word2.

The maxLength variable is set to the maximum of the lengths of word1 and word2, which determines the number of iterations needed in the loop.

The loop runs for maxLength iterations, and in each iteration, it checks if the current index i is within the bounds of word1 and word2. If so, it adds the character at index i from the corresponding word to the merged array.

Leave a comment