package anagram import "strings" // Detect returns all candidates that are anagrams of subject func Detect(subject string, candidates []string) []string { var ret []string for i := range candidates { if isAnagram(subject, candidates[i]) { ret = append(ret, strings.ToLower(candidates[i])) } } return ret } func isAnagram(s, c string) bool { s = strings.ToLower(s) c = strings.ToLower(c) if s == c || len(s) != len(c) { return false } for _, v := range strings.Split(s, "") { if strings.Count(s, v) != strings.Count(c, v) { return false } } return true }