首页 > 后端开发 > Python教程 > 代码的出现 &#- DayDisk Fragmenter (Python)

代码的出现 &#- DayDisk Fragmenter (Python)

Barbara Streisand
发布: 2024-12-17 10:45:24
原创
172 人浏览过

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板