Counting number of repeating words in a Golang String
Last Updated :
04 May, 2020
Given a string, the task is to count the number of words being repeated in that particular string in Golang.
Example:
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.
package main
import (
"fmt"
"strings"
)
func repetition(st string) map[string] int {
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
}
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)
}
}
|
Output:
the = 3
, = 2
bitter = 2
to = 1
make = 1
better = 1
betty = 2
bought = 2
butter = 4
was = 1
more = 1
Explanation: 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.
Share your thoughts in the comments
Please Login to comment...