Skip to content

Commit

Permalink
Merge strings alternately in Go
Browse files Browse the repository at this point in the history
  • Loading branch information
absognety committed Jun 23, 2024
1 parent d692e29 commit ba4173c
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
51 changes: 51 additions & 0 deletions LeetCode/ProgrammingInGo/MergeAlternately/MergeAlternately.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*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
Constraints:
1 <= word1.length, word2.length <= 100
word1 and word2 consist of lowercase English letters.
*/

package MergeAlternately

func MergeAlternate(word1 string, word2 string) string {
result := ""
for i := 0; i < len(word1) || i < len(word2); i++ {
if i < len(word1) {
result += string(word1[i])
}
if i < len(word2) {
result += string(word2[i])
}
}
return result
}
6 changes: 6 additions & 0 deletions LeetCode/ProgrammingInGo/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package main
import (
"fmt"
"ProgrammingInGo/MinMovesToSeatEveryone"
"ProgrammingInGo/MergeAlternately"
)

func main() {
Expand All @@ -11,4 +12,9 @@ func main() {
fmt.Println(MinMovesToSeatEveryone.MinMovesToSeat([]int{3,1,5}, []int{2,7,4}))
fmt.Println(MinMovesToSeatEveryone.MinMovesToSeat([]int{4,1,5,9}, []int{1,3,2,6}))
fmt.Println(MinMovesToSeatEveryone.MinMovesToSeat([]int{2,2,6,6}, []int{1,3,2,6}))

// test the function
fmt.Println(MergeAlternately.MergeAlternate("abc", "pqr"))
fmt.Println(MergeAlternately.MergeAlternate("ab", "pqrs"))
fmt.Println(MergeAlternately.MergeAlternate("abcd", "pq"))
}

0 comments on commit ba4173c

Please sign in to comment.