From ba4173c2b2d207c86500c7e55a4c325aab508fb2 Mon Sep 17 00:00:00 2001 From: Vikas Chitturi Date: Sun, 23 Jun 2024 20:42:30 +0530 Subject: [PATCH] Merge strings alternately in Go --- .../MergeAlternately/MergeAlternately.go | 51 +++++++++++++++++++ LeetCode/ProgrammingInGo/main.go | 6 +++ 2 files changed, 57 insertions(+) create mode 100644 LeetCode/ProgrammingInGo/MergeAlternately/MergeAlternately.go diff --git a/LeetCode/ProgrammingInGo/MergeAlternately/MergeAlternately.go b/LeetCode/ProgrammingInGo/MergeAlternately/MergeAlternately.go new file mode 100644 index 0000000..1ffbad8 --- /dev/null +++ b/LeetCode/ProgrammingInGo/MergeAlternately/MergeAlternately.go @@ -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 +} \ No newline at end of file diff --git a/LeetCode/ProgrammingInGo/main.go b/LeetCode/ProgrammingInGo/main.go index df65956..e2710f0 100644 --- a/LeetCode/ProgrammingInGo/main.go +++ b/LeetCode/ProgrammingInGo/main.go @@ -3,6 +3,7 @@ package main import ( "fmt" "ProgrammingInGo/MinMovesToSeatEveryone" + "ProgrammingInGo/MergeAlternately" ) func main() { @@ -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")) } \ No newline at end of file