方法输入:
["eat","tea","tan","ate","nat","bat"]
个
我通过此方法将每个字形组合到数组中各自的数组中,然后按组大小对数组进行排序:
def group_anagrams(a)
a.group_by { |stringElement| stringElement.chars.sort }.values.sort_by(&:size)
end
我正在努力弄清楚如何按字母顺序对数组中的结果数组进行排序,因为正如您所看到的,在数组的中间元素中,nat应该在tan之前:
[["bat"], ["tan", "nat"], ["eat", "tea", "ate"]]
使用最终解决方案进行更新:
def group_anagrams(a)
a.group_by { |stringElement| stringElement.chars.sort }.values.map(&:sort).sort_by(&:size)
end