DEV Community

Md. Shafiqul Islam
Md. Shafiqul Islam

Posted on

1 1 1

Merge Strings Alternately in javascript

Image description
After a long time, I'm back to solving problems in the LeetCode 75 series. Today, I solved the first problem, which was easy but had some tricky corner cases. I'd like to share how I approached this problem.

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.

Example:
Input: word1 = "abc",
word2 = "pqr"
Output: "apbqcr"

I divided my solution into three parts:

  • Logic check (corner case handling)
  • Using a for loop
  • Appending the final string

Logic check: First, I checked which word had the smallest length. I then iterated the loop based on this smallest length. If one word was longer than the other, I appended the remaining characters from the longer word to the end of the string.

Using a loop: I used a loop to alternate and merge characters from each string.

Appending the final string: Finally, I combined the strings and returned the result.

var mergeAlternately = function (word1, word2) {
  let str = "";

  if (word2.length > word1.length) {
    for (let i = 0; i < word1.length; i++) {
      str = str + word1[i] + word2[i];
    }
    str = str + word2.substring(word1.length);
  } else if (word1.length > word2.length) {
    for (let i = 0; i < word2.length; i++) {
      str = str + word1[i] + word2[i];
    }
    str = str + word1.substring(word2.length);
  } else {
    for (let i = 0; i < word1.length; i++) {
      str = str + word1[i] + word2[i];
    }
  }
  return str;
};

console.log("result", mergeAlternately("abcd", "pq"));

result: apbqcd

Enter fullscreen mode Exit fullscreen mode

If you have better solutions or ideas, feel free to share with me.

SurveyJS custom survey software

Simplify data collection in your JS app with a fully integrated form management platform. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more. Integrates with any backend system, giving you full control over your data and no user limits.

Learn more

Top comments (2)

Collapse
 
pengeszikra profile image
Peter Vivo • Edited

Take a look this one, `[...first] split string to characters, then mapping to char pair at the end added that is left.

javascript
/** @type (first: string, second: string) => string */
const merge2 = (first, second) => [...first]
.map((char, index) => char + (
second[index]
? second[index]
: ""
))
.join('')
+ second.slice(first.length);

strange the code formating don't work fine on this comment

Collapse
 
shafiqbd profile image
Md. Shafiqul Islam

But there is missing of corner case.

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

AWS Security LIVE!

Hosted by security experts, AWS Security LIVE! showcases AWS Partners tackling real-world security challenges. Join live and get your security questions answered.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️