package main
import (
"sort"
"strings"
)
func (_ Solution) FrequencySort(s string) string {
count := make(map[byte]int)
firstIndex := make(map[byte]int)
for i := 0; i < len(s); i++ {
char := s[i]
count[char]++
if _, exists := firstIndex[char]; !exists {
firstIndex[char] = i
}
}
chars := make([]byte, 0, len(count))
for char := range count {
chars = append(chars, char)
}
sort.Slice(chars, func(i, j int) bool {
if count[chars[i]] != count[chars[j]] {
return count[chars[i]] > count[chars[j]]
}
return firstIndex[chars[i]] < firstIndex[chars[j]]
})
var result strings.Builder
for _, char := range chars {
result.WriteString(strings.Repeat(string(char), count[char]))
}
return result.String()
}
birinchi stringdagi harlarni sanab olamiz, va natijani chostatalari bboyicha kamayish tartibida qayta string qiymaitga taxlab qaytaramiz
Hali izoh yo'q. Birinchi bo'ling!