Masalalar
Go Algoritm masala

Chastota bo'yicha tartiblash

16 September, 2026
Go
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

👍 0 ❤️ 0 🔥 0

Izohlar 0

Izoh qoldirish uchun kiring yoki ro'yxatdan o'ting.

Hali izoh yo'q. Birinchi bo'ling!