Learning GoLang: GoLang: Merge Strings Alternately
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 rExample 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 sExample 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 dConstraints:
1 <= word1.length, word2.length <= 100
word1 and word2 consist of lowercase English letters.
GoLang Algorithm to Merge Strings Alternatively
Let's keep two pointers, and concatenate characters one by one alternatively from two strings.
func mergeAlternately(word1 string, word2 string) string {
var l1, l2 = len(word1), len(word2)
var ans = ""
for i, j := 0, 0; i < l1 || j < l2; i, j = i + 1, j + 1 {
if i < l1 {
ans += string(word1[i])
}
if j < l2 {
ans += string(word2[j])
}
}
return ans
}
GoLang implementation: O(N+M) time where N and M are the lengths of two strings respectively. The space complexity is also O(N+M) as we are allocating a new string (result).
See also: String Interleaving Algorithm
Reposted to Blog
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Thank you for reading ^^^^^^^^^^^^^^^
NEW! Following my Trail (Upvote or/and Downvote)
Follow me for topics of Algorithms, Blockchain and Cloud.
I am @justyy - a Steem Witness
https://steemyy.com
My contributions
- Video Downloader
- Steem Blockchain Tools
- Free Cryptos API
- VPS Database
- Computing Technology Blog
- A few useless tools
- And some other online software/tools
- Merge Files/Videos
- LOGO Turtle Programming Chrome Extension
- Teaching Kids Programming - Youtube Channel and All Contents
Delegation Service
Support me
If you like my work, please:
- Buy Me a Coffee, Thanks!
- Become my Sponsor, Thanks!
- Voting for me:
https://steemit.com/~witnesses type in justyy and click VOTE
- Delegate SP: https://steemyy.com/sp-delegate-form/?delegatee=justyy
- Vote @justyy as Witness: https://steemyy.com/witness-voting/?witness=justyy&action=approve
- Set @justyy as Proxy: https://steemyy.com/witness-voting/?witness=justyy&action=proxy
Alternatively, you can vote witness or set proxy here: https://steemit.com/~witnesses