プログラミングコンテスト-配列親子関係の変換(完了)

2519 ワード

シーン
これはまたプロジェクトに実在するシーンです.
レポートにリストを表示するときに階層ドリルダウンが頻繁に発生します.レポート・フレームワークの設計の限界のため、ドリルダウン時に新しいデータ要求を再開するのではなく、レポートに必要なすべてのデータを一度にダウンロードします.では、データ・リストドリルダウン時の親子関係をどのようにしますか.
H 5のレポート解析エンジンはすでにJSで実現されており、具体的な実現方式は新しい問題の交流を再開することができる.モバイル側のオリジナルコードを使用してレポートコントロールを書き換え、データの親子関係は処理を提出しなければならないので、今回のコンテストの問題が来ました.
データ構造変換ロジック
  • 第2次元配列構造:[自己ID,親ノードID,リスト配列]
  • の最初の2つのデータ項目(自己ID/親ノードID)は、親子関係を処理するためにのみ使用され、
  • は示されない.
  • 第1の階層のデータ親ノードIDは空の文字列
  • である.
    [
      ['  ID1', '', '  1', 1, 2, 3],
      ['  ID2', '', '  2', 4, 5, 6],
      ['  ID11', '  ID1', '  3', 7, 8, 9],
      ['  ID21', '  ID2', '  4', 10, 11, 12],
      ['  ID22', '  ID2', '  5', 13, 14, 15],
      ['  ID111', '  ID11', '  6', 16, 17, 18],
      ['  ID211', '  ID21', '  7', 19, 20, 21],
      ['  ID2111', '  ID211', '  8', 22, 23, 24]
    ]
    
    =>
    
    [
      {
        "main_data": ["  1", 1, 2, 3],
        "sub_data": [
          {
            "main_data": ["  3", 7, 8, 9],
            "sub_data": [
              {
                "main_data": ["  6", 16, 17, 18],
                "sub_data": []
              }
            ]
          }
        ]
      },
      {
        "main_data": ["  2",4,5,6],
        "sub_data": [
          {
            "main_data": ["  4",10,11,12],
            "sub_data": [
              {
                "main_data": ["  7",19,20,21],
                "sub_data": [
                  {
                    "main_data": ["  8",22,23,24],
                    "sub_data": []
                  }
                ]
              }
            ]
          },
          {
            "main_data": ["  5",13,14,15],
            "sub_data": []
          }
        ]
      }
    ]
    

    需要
  • は、上記2次元配列を所望のデータ構造
  • に変換する.
  • 職階プログラミング言語を使用して実装された上で、他の言語を使用してソリューションの加点を提供する
  • 問題は比較的簡単で、他の人と同じプログラミング言語を繰り返してはいけない同じソリューションで、githubの提出時間を基準として
  • その他
  • ボーナス1000
  • コード提出先:IntefocusCoding
  • 最近の仕事が飽和していることを考慮して、締め切りは来週の土曜日(17/07/05)
  • コード作成時にチーム内のプログラミング仕様
  • に従う
  • ソースファイル名フォーマット
  • 単一ファイル: - .
  • プロジェクトフォルダ: -
  • パッケージコードロジックが単一の関数またはクラスであることを奨励し、インタフェースパラメータを呼び出し、出力予想結果
  • を実行する.
  • ドキュメントの整理時にチーム内部markdown規範
  • に従う
  • コミット時にチーム内部commitフォーマット
  • に従う
  • 職階言語実装に基づいて、
  • を複数の言語で実装することを奨励する.