Open In App

Alternatively Merge two Strings

Improve
Improve
Like Article
Like
Save
Share
Report

Given 2 strings, merge them in an alternate way, i.e. the final string’s first character is the first character of the first string, the second character of the final string is the first character of the second string and so on. And if once you reach end of one string while if another string is still remaining then append the remaining of that string to final string 

Examples: 

Input : string 1 :"geeks"
        string 2 :"forgeeks"
Output: "gfeoerkgseeks"
Explanation : The answer contains characters from alternate strings, and once 
the first string ends the remaining of the second string is added to the final string

Input :string 1 :"hello"
        string 2 :"geeks"
Output : hgeelelkos

The idea is simple, we create a result string. We one by one append characters of both given strings in alternate style.

C++




// C++ code to alternatively merge two strings
#include <bits/stdc++.h>
using namespace std;
  
// Function for alternatively merging two strings 
string merge(string s1, string s2) 
    // To store the final string 
    string result = "";
  
    // For every index in the strings 
    for (int i = 0; i < s1.length() ||
                    i < s2.length(); i++) 
    
  
        // First choose the ith character of the 
        // first string if it exists 
        if (i < s1.length()) 
            result += s1[i];
  
        // Then choose the ith character of the 
        // second string if it exists 
        if (i < s2.length()) 
            result += s2[i];
    
    return result; 
  
// Driver code 
int main() 
    string s1 = "geeks"
    string s2 = "forgeeks"
    cout << merge(s1, s2);
  
    return 0;
}
  
// This code is contributed by gp6


Java




// Java code to alternatively merge two strings
public class mergeString {
  
    // Function for alternatively merging two strings
    public static String merge(String s1, String s2)
    {
        // To store the final string
        StringBuilder result = new StringBuilder();
  
        // For every index in the strings
        for (int i = 0; i < s1.length() || i < s2.length(); i++) {
  
            // First choose the ith character of the
            // first string if it exists
            if (i < s1.length())
                result.append(s1.charAt(i));
  
            // Then choose the ith character of the
            // second string if it exists
            if (i < s2.length())
                result.append(s2.charAt(i));
        }
  
        return result.toString();
    }
  
    // Driver code
    public static void main(String[] args)
    {
        String s1 = "geeks";
        String s2 = "forgeeks";
        System.out.println(merge(s1, s2));
    }
}


Python3




# Python3 code to alternatively merge two strings 
  
# Function for alternatively merging two strings 
def merge(s1, s2): 
      
    # To store the final string 
    result = "" 
  
    # For every index in the strings 
    i = 0
    while (i < len(s1)) or (i < len(s2)):
          
        # First choose the ith character of the 
        # first string if it exists 
        if (i < len(s1)):
            result += s1[i] 
  
        # Then choose the ith character of the 
        # second string if it exists 
        if (i < len(s2)):
            result += s2[i] 
              
        i += 1
          
    return result
  
# Driver Code
s1 = "geeks"
s2 = "forgeeks" 
  
print(merge(s1, s2))
  
# This code is contributed by divyesh072019


C#




// C# code to alternatively merge two strings
using System;
class GFG {
      
    // Function for alternatively merging two strings 
    static string merge(string s1, string s2) 
    
        // To store the final string 
        string result = "";
       
        // For every index in the strings 
        for (int i = 0; i < s1.Length || i < s2.Length; i++) 
        
       
            // First choose the ith character of the 
            // first string if it exists 
            if (i < s1.Length) 
                result += s1[i];
       
            // Then choose the ith character of the 
            // second string if it exists 
            if (i < s2.Length) 
                result += s2[i];
        
        return result; 
    }  
      
  static void Main() {
        string s1 = "geeks"
        string s2 = "forgeeks"
        Console.WriteLine(merge(s1, s2));
  }
}
  
// This code is contributed by divyeshrabadiya07


Javascript




// JavaScript code to alternatively merge two strings
function mergeString(s1, s2) {
    // To store the final string
    let result = "";
    // For every index in the strings
    for (let i = 0; i < s1.length || i < s2.length; i++) {
  
        // First choose the ith character of the
        // first string if it exists
        if (i < s1.length)
            result += s1.charAt(i);
  
        // Then choose the ith character of the
        // second string if it exists
        if (i < s2.length)
            result += s2.charAt(i);
    }
  
    return result;
}
  
// Driver code
let s1 = "geeks";
let s2 = "forgeeks";
console.log(mergeString(s1, s2));
//This code is Contributed by chinmaya121221


Output

gfeoerkgseeks

Complexity Analysis:

  • Time Complexity: O(max(L1,L2)), Where L1 and L2 are the lengths of string 1 and string 2 respectively.
  • Auxiliary Space: O(L1+L2), Where L1 and L2 are the lengths of string 1 and string 2 respectively.


Last Updated : 23 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads