今天的解决方案只是用 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中文网其他相关文章!