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
*/