How to group Anagrams from a list of strings in Kotlin

1 Answer

0 votes
fun groupAnagrams(strs: List<String>): List<List<String>> {
    val anagramMap = mutableMapOf<String, MutableList<String>>()

    for (str in strs) {
        val sortedStr = str.toCharArray().sorted().joinToString("") // Sort characters in the string
        anagramMap.getOrPut(sortedStr) { mutableListOf() }.add(str)
    }

    return anagramMap.values.toList()
}

fun main() {
    val inputWords = listOf("eat", "tea", "tan", "ate", "nat", "bat", "tae")
    val groupedAnagrams = groupAnagrams(inputWords)

    groupedAnagrams.forEach { group ->
        println(group.joinToString(" "))
    }
}


 
  
/*
run:
  
eat tea ate tae
tan nat
bat

*/

 



answered Jun 10, 2025 by avibootz
...