如果无法在 Go lang 中对地图进行排序,那么正确的方法是什么?

假设我有一个字符串,我想计算每个字母的频率,然后按频率对表格进行排序。“你好拉里”的期望输出是:


+--------+-----------+

| Letter | Occurence |

+--------+-----------+

| l      |         3 |

| r      |         2 |

| h      |         1 |

| e      |         1 |

| o      |         1 |

| a      |         1 |

| y      |         1 |

+--------+-----------+

首先,我想我会使用以字母为键的地图轻松处理这个问题。这真的很容易。但是,地图项没有顺序,因此无法排序。


我想我可以使用结构来处理这个问题:


type Letter struct {

    Value string

    Score int

}

type LetterList []Letter

然而,这带来了一系列其他问题:


我需要检查 LetterList 中是否还没有该字母,因为我不能将这些字母用作键

没有直接的方法来对它们进行排序(使用 Int.sort() 左右)

使用这些结构一点也不优雅。有更好的解决方案吗?


潇潇雨雨
浏览 193回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go