首頁 >後端開發 >Python教學 >程式碼的出現 &#- DayDisk Fragmenter (Python)

程式碼的出現 &#- DayDisk Fragmenter (Python)

Barbara Streisand
Barbara Streisand原創
2024-12-17 10:45:24163瀏覽

Advent of Code

程式碼出現第 9 天:磁碟碎片

今天的解決方案只是用 Python 完成的,老實說,我發現很難找到時間用 Python 和 C# 編寫以及撰寫文章,所以選擇繼續使用其中之一。

第 1 部分

這相當簡單,要求是將輸入轉換為 id 和空格,其中奇數索引是 id,偶數索引是空格 (.) 並重複 x 次,與輸入中的數字相關,例如;

1234 =>

1 =>; 1x id --> 0
2=> 2x 空 --> ..
3=> 3x id --> 111
4=> 4x 空 --> ....

整體線=> 0..111....

然後我們被要求將最右邊的元素移到最左邊的空白區域。

即移動 1 ->第一個 (.),我們使用兩個循環來完成此操作,一個從後面開始 ->前面,另一個前面->後部。

當我們找到一個Id時,我們從前面移動到找到第一個空位,然後交換這些點,繼續下去,直到右邊的所有數字都移動到左邊的空位。

只要右邊的索引,總是比左邊的索引大,或是中間沒有相遇就一直走。

第2部分

現在,我們不只是找到最左邊的空白空間,而是必須嘗試找到一個最左邊的空白空間,它可以容納整個文件(id),例如,如果我們的fileId 為9999,我們需要4空的空間在一起,如果它不會,我們將其移動到下一個空的空間。如果沒有空格,我們將移動到下一個 fileId。

[劇透] ->解可以在 GitHub 找到

一如既往,您可以在 Twitter 上聯繫並關注

以上是程式碼的出現 &#- DayDisk Fragmenter (Python)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn