Counting number of repeating words in a Golang String
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.
// 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) } } |
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.