您的位置:首页 > 编程语言 > Go语言

Leetcode451. 根据字符出现频率排序 golang go语言

2018-09-01 15:57 681 查看

给定一个字符串,请将字符串里的字符按照出现的频率降序排列。

 

[code]func frequencySort(s string) string {
m := make(map[string]int)
for i:= 0; i< len(s);i++{
_,ok := m[string(s[i])]
if ok != true{
m[string(s[i])] = strings.Count(s,string(s[i]))
}

}
n := map[int][]string{}
var a []int

for k, v := range m {
n[v] = append(n[v], k)
}
for k := range n {
a = append(a, k)
}
sort.Sort(sort.Reverse(sort.IntSlice(a)))
res := ""
for _, k := range a {
for _, s := range n[k] {
res+=strings.Repeat(s,k)
}
}
return res

}

解题思路:map按值排序

函数:sort.Sort(sort.Reverse(Sort.IntSlice(a)))

strings.Repeat(string, int)

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐