题解 | #字符统计#
字符统计
https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0
package main
import (
"fmt"
"sort"
)
func main() {
var input string
fmt.Scan(&input)
mymap:=make(map[rune]int)
var runes []rune
for _,v:=range input{
// 找出一共有几个独特的rune
if _,ok:=mymap[v];!ok{
runes = append(runes, v)
}
// 充实对应rune出现的次数
mymap[v]++
}
// 现在开始排序
// 使用的slice方法,下面具体讲解一下
sort.Slice(runes, func(i, j int) bool{
// 该方法会根据后面这个回调函数return的bool值进行排序
// 当runes前后两个rune在mymap中对应的出现次数相同的时候,则按照字典升序排
if mymap[runes[i]]==mymap[runes[j]]{
return runes[i]<runes[j]
}
// 默认情况下,按照rune在mymap中对应的出现次数降序排
return mymap[runes[i]]>mymap[runes[j]]
})
fmt.Println(string(runes))
}
查看12道真题和解析