题解 | #字符统计#

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

package main

import (
    "fmt"
    "sort"
)

type LetterCnt struct {
    Ch byte
    Cnt int
}

func calculate(s string) {
    m := make(map[byte]int, 0)
    for i:=0; i<len(s); i++ {
        m[s[i]]++
    }

    var letters []LetterCnt
    for k, v := range m {
        letters = append(letters, LetterCnt{Ch: k, Cnt: v})
    }

    sort.Slice(letters, func(i, j int) bool {
        if letters[i].Cnt == letters[j].Cnt {
            return letters[i].Ch < letters[j].Ch
        }

        return letters[i].Cnt > letters[j].Cnt
    })

    for _, letter := range letters {
        fmt.Printf("%c", letter.Ch)
    }
}

func main() {
    var s string
    fmt.Scan(&s)

    calculate(s)
}
// 本题输入一个字符串,所以采用:fmt.Scan(&s)

全部评论

相关推荐

06-26 22:20
门头沟学院 Java
码农索隆:让你把简历发给她,她说一些套话,然后让你加一个人,说这个人给你改简历,然后开始卖课
我的求职精神状态
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务