fun secondMostFrequentChar(str: String): Char? {
// Step 1: Count the frequency of each character
val frequencyMap = str.groupingBy { it }.eachCount()
// Step 2: Sort the characters by frequency in descending order
val sortedFrequencyList = frequencyMap.entries.sortedByDescending { it.value }
// Step 3: Retrieve the second most frequent character
return if (sortedFrequencyList.size > 1) sortedFrequencyList[1].key else null
}
fun main() {
val s = "bbaddddccce";
val result = secondMostFrequentChar(s)
println("The second most frequent character is: '$result'")
}
/*
run:
The second most frequent character is: 'c'
*/