Sha256: 066c44398ad1a7db532289baacae70fbc39952a4ad543538dd045317f3c37d6f

Contents?: true

Size: 622 Bytes

Versions: 122

Compression:

Stored size: 622 Bytes

Contents

package wordcount

import (
	"regexp"
	"strings"
)

// Frequency is a map of the frequency of occurrence keyed to the unique word.
type Frequency map[string]int

// WordCount returns the map of frequency of words based on the input phrase.
func WordCount(phrase string) Frequency {
	freq := Frequency{}
	for _, word := range strings.Fields(normalize(phrase)) {
		word = strings.Trim(word, "'")
		freq[word]++
	}
	return freq
}

func normalize(phrase string) string {
	//  Allow for apostrophes in words.
	r, _ := regexp.Compile(`[^\w|']`)
	phrase = strings.ToLower(phrase)
	return r.ReplaceAllLiteralString(phrase, " ")
}

Version data entries

122 entries across 122 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/go/exercises/word-count/example.go
trackler-2.2.1.179 tracks/go/exercises/word-count/example.go
trackler-2.2.1.178 tracks/go/exercises/word-count/example.go
trackler-2.2.1.177 tracks/go/exercises/word-count/example.go
trackler-2.2.1.176 tracks/go/exercises/word-count/example.go
trackler-2.2.1.175 tracks/go/exercises/word-count/example.go
trackler-2.2.1.174 tracks/go/exercises/word-count/example.go
trackler-2.2.1.173 tracks/go/exercises/word-count/example.go
trackler-2.2.1.172 tracks/go/exercises/word-count/example.go
trackler-2.2.1.171 tracks/go/exercises/word-count/example.go
trackler-2.2.1.170 tracks/go/exercises/word-count/example.go
trackler-2.2.1.169 tracks/go/exercises/word-count/example.go
trackler-2.2.1.167 tracks/go/exercises/word-count/example.go
trackler-2.2.1.166 tracks/go/exercises/word-count/example.go
trackler-2.2.1.165 tracks/go/exercises/word-count/example.go
trackler-2.2.1.164 tracks/go/exercises/word-count/example.go
trackler-2.2.1.163 tracks/go/exercises/word-count/example.go
trackler-2.2.1.162 tracks/go/exercises/word-count/example.go
trackler-2.2.1.161 tracks/go/exercises/word-count/example.go
trackler-2.2.1.160 tracks/go/exercises/word-count/example.go