package main
import (
"fmt"
)
func findSecondMostFrequentChar(str string) rune {
// Step 1: Count the frequency of each character
frequency := make(map[rune]int)
for _, char := range str {
frequency[char]++
}
// Step 2: Find the most frequent and second most frequent characters
var maxFreq, secondMaxFreq int
var maxChar, secondMaxChar rune
for char, freq := range frequency {
if freq > maxFreq {
secondMaxFreq = maxFreq
secondMaxChar = maxChar
maxFreq = freq
maxChar = char
} else if freq > secondMaxFreq && freq != maxFreq {
secondMaxFreq = freq
secondMaxChar = char
}
}
return secondMaxChar
}
func main() {
str := "bbaddddccce";
secondMostFrequentChar := findSecondMostFrequentChar(str)
fmt.Printf("The second most frequent character is: %c\n", secondMostFrequentChar)
}
/*
run:
The second most frequent character is: c
*/