2017-06-10 11 views
-2

ネストされた辞書は、キーが文字列であり、値が文字列またはその他のネストされた辞書である辞書です。文字列表現を考えると、我々は(すなわちb,a,cからa,b,cに)ここで、最も外側の辞書内のエントリは、キーによって並べ替えされていますエントリはキー(各ネストされた辞書内)でソートされるネストされたディクショナリをどのようにソートするのですか?

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

(ネストされた各辞書の中に)エントリはキーでソートされている文字列表現を返す必要があります。同様に、最も内側の辞書のエントリはキーで並べ替えられています(つまり、cb,bbからbb,cb

また、出力は入力文字列と同じ形式です。ただし、各ネストされた辞書内でキーは辞書順に並べ替える必要があります(例:a<b<bb<bbb<bc<c

+0

JavaScriptでこれを行う方法は、ヘルプが必要な場合です:https://stackoverflow.com/questions/4222690/sorting-a-json-object-in-javascript – ControlAltDel

答えて

0

これはインタビューの質問のようなにおいがします。とにかく。

基本的な考え方:

  • あなたはcharで入力文字を繰り返します。
  • Stackを使用して、各深度で各深度を格納します。スタックの最上部には最も深いサブディックがあります
  • サブディクテーションがスキャンされるたびに、サブディクショナリをString値に変換し、そのキーに属する値を親から割り当てます。
  • Javaでは、各dict/sub-dictをTreeMapで表すことができます。
    HashMapの代わりにTreeMapを使用すると、TreeMapはすでにキーでエントリを並べ替えているためです。

完全な解決策を出すことなく「クリア」することは難しいです。それが役に立てば幸い。

関連する問題