我们如何排序嵌套字典,其中条目按键排序(在每个嵌套字典中)?

时间:2017-06-10 21:55:29

标签: java sorting dictionary

嵌套字典是一个字典,其键是字符串,其值是字符串或其他嵌套字典。给定字符串表示,我们需要返回一个String表示,其中条目按键排序(在每个嵌套字典中)

Input: { b:{cb:cranberry,bb:blueberry},a:apple,c:cherry}
Output:  { a:apple,b:{bb:blueberry,cb:cranberry},c:cherry}

此处最外层词典中的条目已按键重新排序(即从b,a,ca,b,c)。同样,最里面字典中的条目已按键重新排序(即从cb,bbbb,cb

另外,注意:输出将具有与输入字符串相同的通用格式。除了在每个嵌套字典中,键应按增加的词典顺序排序(例如a<b<bb<bbb<bc<c

1 个答案:

答案 0 :(得分:0)

这闻起来就像一个面试问题。反正。

基本想法:

  • 您通过char迭代输入char。
  • 使用Stack按深度存储每个字典深度。堆栈的顶部将具有最深的子字典
  • 每次扫描子字典时,将子字典转换为字符串值,并从父级分配属于该键的值。
  • 您可以使用Java中的TreeMap来表示每个dict / sub-dict 使用TreeMap代替HashMap,因为TreeMap已按其键排序条目。

很难做到&#34;清楚&#34;没有给出完整的解决方案。希望它有所帮助。