Open In App

Counting number of repeating words in a Golang String

Last Updated : 04 May, 2020
Improve
Improve
Like Article
Like
Save
Share
Report

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.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads