-6

次のリストがあります

[
    '<td>1</td>', '<td>2</td>', '<td>3</td>', '<td>4</td>',
    '<td>A</td>', '<td>B</td>', '<td>C</td>', '<td>D</td>',
    '<td>I</td>', '<td>II</td>', '<td>III</td>', '<td>IV</td>',
]

これを並べ替えて一致させるアルゴリズムは次のとおりです。

[
    '<td>1</td>', '<td>A</td>', '<td>I</td>,
    '<td>2</td>', '<td>B</td>', '<td>II</td>,
    '<td>3</td>', '<td>C</td>', '<td>III</td>,
    '<td>4</td>', '<td>D</td>', '<td>IV</td>,
]

インデントされた順序が水平ではなく垂直に従う必要があることを除いて、プログラミングスラングの変更をどのように説明すればよいかわかりません..元のリストのシーケンスの長さしかわかりません(この場合は4)

これは宿題ではありません。シェルでこれを理解するために頭を悩ませているだけです。

4

2 に答える 2

3

並べ替えではなく、転置です。

配列要素には [0, 1, 2, 3, 4, ..] の番号が付けられており、それらを [0, 4, 8, 1, 5, 9, 2, ..] に移動したい、つまり

newpos(x) = oldpos(x)/4 + 4*(oldpos(x) % 4)

ここで、前半は新しい番号で、後半は新しい番号です。

于 2013-10-05T12:42:38.097 に答える