Given a string, the task is to count the number of words being repeated in that particular string in Golang.
Example:
C
Output:
Input: s = "She is mother of my mother."
Output: She = 1
is = 1
mother = 2
of = 1
my = 1
To count the number of repeating words, first, the string is taken as input and then strings.Fields() function is used to split the string. A function "repetition" is defined to count the number of words getting repeated.
Below is the program in Golang to count the number of repeating words in a given string.
// Golang program to count the number of
// repeating words in given Golang String
package main
import (
"fmt"
"strings"
)
func repetition(st string) map[string]int {
// using strings.Field Function
input := strings.Fields(st)
wc := make(map[string]int)
for _, word := range input {
_, matched := wc[word]
if matched {
wc[word] += 1
} else {
wc[word] = 1
}
}
return wc
}
// Main function
func main() {
input := "betty bought the butter , the butter was bitter , " +
"betty bought more butter to make the bitter butter better "
for index, element := range repetition(input) {
fmt.Println(index, "=", element)
}
}
the = 3 , = 2 bitter = 2 to = 1 make = 1 better = 1 betty = 2 bought = 2 butter = 4 was = 1 more = 1Explanation: In the above program, we first take a string as an input and then split that string using strings.Fields() function. If the same word has occurred, the count increases by one else value 1 is returned that implies that word occurs only once in the string.