今日の解決策は、今日は Python でのみ実行されました。ちなみに、Python と C# の両方で記述したり、メモを作成したりする時間を見つけるのは難しいので、今後はどちらか一方を実行することを選択します。 。
これは非常に簡単で、入力を id と空のスペースに変換するというもので、奇数のインデックスは id で偶数は空のスペース (.) であり、入力の数値に応じて x 回繰り返します。
1234 =>
1 => 1x ID --> 0
2 => 2x 空 --> ..
3 => 3x ID --> 111
4 => 4x 空 --> ....
全体行 => 0..111....
次に、一番右の要素を一番左の空きスペースに移動するように求められました。
つまり、移動 1 ->最初の (.) では、2 つのループを使用してこれを実行します。1 つは後ろから進みます ->前面、もう一方の前面 ->後方。
ID が見つかったら、先頭から移動して最初の空きスペースを見つけ、これらのポイントを切り替えて、右からのすべての数字が左の空きスペースに移動されるまで続けます。
右のインデックスが常に左のインデックスより大きいか、中央で出会っていない限り、続行します。
ここで、単に左端の空きスペースを見つけるのではなく、ファイル (ID) 全体に適合する左端の空きスペースを探す必要があります。たとえば、fileId が 9999 の場合、4 つ必要になります。空のスペースを一緒に配置します。そうでない場合は、移動できる次の空のスペースに移動します。空のスペースがない場合は、次の fileId に移動します。
[ネタバレ] ->解決策は GitHub
で見つけることができます。いつものように、Twitter で連絡したりフォローしたりできます
以上がコードの出現 - DayDisk フラグメンター (Python)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。