我有一段字符串片段,並且想按照它們的頻率對它們進行排序,我試圖按照文檔http://golang.org/pkg/sort/中的byAge示例進行排序,但無法如何傳遞它的頻率列表。通過頻率映射對字符串進行排序
含義,示例的結果將是:
[[a,b] [a,b,c,d] [a,c,d,e]]
會的辦法是有「」用的頻率自定義的結構作爲它自己的屬性來表示?這似乎更符合byAge示例。
func main() {
transactions := [][]string{{"a", "b"}, {"b", "c", "d", "a"}, {"c", "d", "e", "a"}}
frequencies := map[string]int{
"a": 3,
"b": 2,
"c": 2,
"d": 2,
"e": 1,
}
fmt.Println(transactions, frequencies)
}
當計算的關鍵是一個簡單的地圖查找,這種解決方案可能是不值得的,由於額外的分配和複製。對於昂貴的密鑰計算,這可能是一個改進。 –