Skip to content

Instantly share code, notes, and snippets.

@robbypelssers
Last active December 20, 2015 04:19
Finding second highest frequency of characters in String
package puzzlers
import scala.collection.mutable.{Map => MMap}
object HighestFrequencyPuzzle {
def stringToCharFrequencyMap(source: String): MMap[Char, Int] = {
source.filter(c => c!=' ').foldLeft(MMap[Char, Int]())((map, char) => {
map.update(char, map.getOrElseUpdate(char, 0) + 1)
map
})
}
def getNthHighestFrequency(source: String, n: Int): (Char, Int) =
stringToCharFrequencyMap(source).toList.sortBy(_._2).reverse.drop(n -1).take(1)(0)
def main(args: Array[String]): Unit = {
val highest = getNthHighestFrequency("abecbb cdcbef", 1)
println(highest)
val secondHighest = getNthHighestFrequency("abecbb cdcbef", 2)
println(secondHighest)
}
}
/** output
(b,4)
(c,3)
**/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment