我正在寻找可以实现此问题的算法: input:字符串数组 输出:按以下顺序排列的字符串:
a)频率(主要排序) b)a-z
所以如果输入是:
"富""猫""富""凉爽""猫"&# 34;咕""凉爽"
输出应该是:"猫""猫""凉爽""凉爽""富"&# 34; FOO""咕"
我可以将所有内容放在hashmap string-> int(freq)。
中然后按键,值对地图进行排序。
无论如何(O(n * log(n))的复杂性。
可以做得更好吗?
感谢。
答案 0 :(得分:0)
您想用特定语言解决这个问题吗?如果没有,
使用lodash
你可以这样解决:
_.join(_.sortBy(_.groupBy(["foo","cat","foo","cool","cat","goo","cool"])))
这将输出为:cat,cat,cool,cool,foo,foo,goo