Are these two an anagram
A word game checks whether one phrase uses exactly the same letters as another.
- Case does not matter.
- Whitespace is ignored entirely.
- Everything else — digits, punctuation — counts as a character that has to match.
- Two empty phrases are an anagram of each other.
isAnagram(text: string, other: string) → bool
Go needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.
Where you start
func isAnagram(text string, other string) bool {
}
Worked examples
| Call | Result |
|---|---|
isAnagram("Listen", "Silent") | true |
isAnagram("a b", "ba") | true |
isAnagram("hello", "world") | false |
isAnagram("abc", "ab") | false |
Hint
Strip and lowercase both, then compare the sorted characters, or count them.
Reference solution in Go
func isAnagram(text string, other string) bool {
clean := func(s string) string {
b := []byte{}
for i := 0; i < len(s); i++ {
c := s[i]
if c == ' ' || c == '\t' || c == '\n' {
continue
}
if c >= 'A' && c <= 'Z' {
c += 32
}
b = append(b, c)
}
sort.Slice(b, func(i, j int) bool { return b[i] < b[j] })
return string(b)
}
return clean(text) == clean(other)
}