OrderedDictには階層レベルに対応するキーと各レベルのコードリストが格納されており、各子レベルは親レベルのコードとの関係を持っています。階層的なデータトラバーサルとPythonでの表現
codes_dict = {
11: {
111: {
1111: {
...
},
1112: {
...
},
1113: {
...
},
...
},
112: {
...
},
}
}
精神は、私はちょうどプログラミングをしていないのです。私は、このようなネストされた辞書やこれらのコードのツリー表現、のような前者は何かのような1つに、このフォームから取得しようとしています
from collections import OrderedDict
codes_ord_dict = OrderedDict([
(2, [11]),
(3, [111, 112]),
(4, [1111, 1112, 1113, 1114, 1119, 1121, 1122, 1123, 1124, 1125, 1129])
])
トラバースするための接続レベルを上げるには、次のレベルに進んで親コードに従って、子どもたちを作り出し、私が来たやり方を戻し、次のコードに移ります。私が作り出した関係や、そうでないので、繰り返しはありません。実際に私に渡された答えを探しているのではなく、これにアプローチするためのいくつかの戦略を探しています。ソリューションには再帰が含まれるようですが、前のレベルと次のレベルを参照するように状態を維持する必要もあります。
ガイダンスをいただければ幸いです。
@Delforgeに感謝します。あなたの "素朴な実装"は、深さが親と子ノードの間で変化するので、より大きな問題の場合にも適しています。より大きな問題は、6番目のレベルで7桁のコードで6つのレベルの可能性がありますが、いくつかの親ノードには子/葉がありません。だから、これは良いことです。誰かが好奇心を持っていれば、私はあなたの答えのPython 3実装を投稿します。また、問題を6レベルまで拡張し、出力のスニペットを投稿します。 – Erik