How to group Anagrams from a list of strings in Scala

1 Answer

0 votes
import scala.collection.mutable

object GroupAnagrams {
  def groupAnagrams(strs: List[String]): List[List[String]] = {
    val anagramMap = mutable.Map[String, List[String]]()

    for (str <- strs) {
      val sortedStr = str.sorted // Sort characters in the string
      anagramMap.update(sortedStr, anagramMap.getOrElse(sortedStr, List()) :+ str)
    }

    anagramMap.values.toList
  }

  def main(args: Array[String]): Unit = {
    val inputWords = List("eat", "tea", "tan", "ate", "nat", "bat", "tae")
    val groupedAnagrams = groupAnagrams(inputWords)

    groupedAnagrams.foreach(group => println(group.mkString(" ")))
  }
}


 
/*
run:

eat tea ate tae
bat
tan nat

*/

 



answered Jun 10, 2025 by avibootz
...