Skip to content

Instantly share code, notes, and snippets.

@pkukielka
Created December 5, 2013 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pkukielka/7808952 to your computer and use it in GitHub Desktop.
Save pkukielka/7808952 to your computer and use it in GitHub Desktop.
class AnagramsCounter {
private val map = scala.collection.mutable.HashMap.empty[String, Int]
private def charBuffer() = Array.fill[Int](256)(0)
private def getValue(key: String) = map.getOrElse(key, 0)
private def insert(key: String) = map += (key -> (getValue(key) + 1))
def parse(input: String) {
var letters = charBuffer()
input.foreach {
case ' ' => insert(letters.mkString); letters = charBuffer()
case l => letters(l.toLower) += 1
}
insert(letters.mkString)
}
def count(word: String) = {
val letters = charBuffer()
word.foreach(l => letters(l.toLower) += 1)
getValue(letters.mkString)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment