今天的解決方案只是用 Python 完成的,老實說,我發現很難找到時間用 Python 和 C# 編寫以及撰寫文章,所以選擇繼續使用其中之一。
這相當簡單,要求是將輸入轉換為 id 和空格,其中奇數索引是 id,偶數索引是空格 (.) 並重複 x 次,與輸入中的數字相關,例如;
1234 =>
1 =>; 1x id --> 0
2=> 2x 空 --> ..
3=> 3x id --> 111
4=> 4x 空 --> ....
整體線=> 0..111....
然後我們被要求將最右邊的元素移到最左邊的空白區域。
即移動 1 ->第一個 (.),我們使用兩個循環來完成此操作,一個從後面開始 ->前面,另一個前面->後部。
當我們找到一個Id時,我們從前面移動到找到第一個空位,然後交換這些點,繼續下去,直到右邊的所有數字都移動到左邊的空位。
只要右邊的索引,總是比左邊的索引大,或是中間沒有相遇就一直走。
現在,我們不只是找到最左邊的空白空間,而是必須嘗試找到一個最左邊的空白空間,它可以容納整個文件(id),例如,如果我們的fileId 為9999,我們需要4空的空間在一起,如果它不會,我們將其移動到下一個空的空間。如果沒有空格,我們將移動到下一個 fileId。
[劇透] ->解可以在 GitHub 找到
一如既往,您可以在 Twitter 上聯繫並關注
以上是程式碼的出現 - DayDisk Fragmenter (Python)的詳細內容。更多資訊請關注PHP中文網其他相關文章!