Skip to content

Instantly share code, notes, and snippets.

@ijoshsmith
Created June 19, 2016 22:09
Show Gist options
  • Save ijoshsmith/883324fc6fa40622231399611f15382f to your computer and use it in GitHub Desktop.
Save ijoshsmith/883324fc6fa40622231399611f15382f to your computer and use it in GitHub Desktop.
Finding anagrams in Swift
func findAnagramsIn(words: [String]) -> [[String]] {
var signatureToAnagrams = [String: [String]]()
for word in words {
let signature = String(word.characters.sort())
if let anagrams = signatureToAnagrams[signature] {
signatureToAnagrams[signature] = anagrams + [word]
}
else {
signatureToAnagrams[signature] = [word]
}
}
return signatureToAnagrams.flatMap { (_, anagrams) in
anagrams.count > 1 ? anagrams : nil
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment