题解 | #字符统计#

字符统计

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)

全部评论

相关推荐

09-24 12:15
门头沟学院 C++
Brooks178:【DJI 大疆创新】同学您好!感谢您关注大疆创新-"拓疆者"校园招聘并投递后端开发工程师(互联网事业部-深圳)。经过慎重考虑,我们认为目前您可能不是最适合该职位的人选,因此无法为您继续推进该职位的后续安排。我们会将您的信息保留在人才库中,以便未来有合适机会时再与您联系。再次感谢您的信任与参与,祝您求职顺利!
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务