Skip to content

Instantly share code, notes, and snippets.

@gerep
Created February 29, 2016 18:11
Show Gist options
  • Save gerep/7817efdf2887a2ae4bab to your computer and use it in GitHub Desktop.
Save gerep/7817efdf2887a2ae4bab to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
"io/ioutil"
"sort"
"strings"
)
func main() {
letters := "abcdefghijklmnopqrstuvwxyz_"
text, err := ioutil.ReadFile("text.txt")
if err != nil {
fmt.Println("ReadFile error: ", err.Error())
}
splitedList := strings.Split(letters, "")
countOfElements := make(map[int]string)
for _, v := range splitedList {
countOfElements[strings.Count(string(text), v)] = v
}
// This order trick was shamelessly copied from Andrew Gerrand
// Here http://blog.golang.org/go-maps-in-action
var keys []int
for k := range countOfElements {
keys = append(keys, k)
}
// Source: https://golang.org/pkg/sort/#Reverse
sort.Sort(sort.Reverse(sort.IntSlice(keys)))
var secret []string
for _, k := range keys {
secret = append(secret, countOfElements[k])
}
secretWord := strings.Split(strings.Join(secret, ""), "_")[0]
fmt.Println(secretWord)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment