题解 | #字符统计#

字符统计

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)

全部评论

相关推荐

07-18 18:44
已编辑
中山职业技术学院 Java
投递文远知行等公司7个岗位
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
07-01 23:23
郑州大学 Java
否极泰来来来来:牛客迟早有高三的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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