Alternatively Merge two Strings
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 :"Beginner" string 2 :"forBeginner" 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 :"Beginner" 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 = "Beginner" ; string s2 = "forBeginner" ; 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 = "Beginner" ; String s2 = "forBeginner" ; 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 = "Beginner" s2 = "forBeginner" 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 = "Beginner" ; string s2 = "forBeginner" ; 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 = "Beginner" ; let s2 = "forBeginner" ; 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.