【问题标题】:How do we sort Nested Dictionaries where entries are sorted by keys(within each nested dictionary)?我们如何对嵌套字典进行排序,其中条目按键排序(在每个嵌套字典中)?
【发布时间】:2017-06-10 21:55:29
【问题描述】:

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

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

【问题讨论】:

标签: java sorting dictionary


【解决方案1】:

这闻起来像一个面试问题。无论如何。

基本思路:

  • 您逐个字符地迭代输入字符。
  • 使用Stack 按深度存储每个字典深度。栈顶将有最深的子字典
  • 每次扫描 sub-dict 时,将 sub-dict 转换为 String 值,并从 parent 分配属于 key 的值。
  • 您可以在 Java 中用TreeMap 表示每个字典/子字典。
    使用TreeMap 而不是HashMap,因为TreeMap 已经按它们的键对条目进行了排序。

如果不给出完整的解决方案,很难让它“清晰”。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2019-08-12
    • 2015-03-31
    • 1970-01-01
    • 2019-02-08
    • 2014-05-01
    • 2020-04-29
    • 2020-11-11
    • 2018-10-21
    • 2020-01-22
    相关资源
    最近更新 更多