【发布时间】:2019-08-08 09:12:07
【问题描述】:
在我们的工程师周中,我的学校举办了代码挑战赛。您不能使用解决大部分问题的库。这是我的问题。
[>][ ][<]
[ ][^][ ]
[ ][<][ ]
给定一个任意大小、任意数量的飞机、任意步骤的机场的 ASCII 艺术,解析文本文件并做三件事。
1) 给定一个步骤,找出哪架飞机会相撞,用'x'标记飞机
2) 给定一个步骤,找出哪架飞机会飞离网格而不会相互碰撞,用“o”表示。例如,[ ][ ][<] 将在步长为 3 的情况下飞离。
3) 给定一个步骤,如果飞机没有飞离网格并且没有坠毁,则在下一个着陆点替换它
我写了一些东西,可以把上面的文本文件变成一个嵌套列表,还可以获取所有水平面的当前和未来坐标。
我目前正在开发一个名为updated_airfield 的函数,我可以在其中用“x”或“o”标记飞机或将它们移动到另一个位置。这个谜题的逻辑部分让我很生气。下面是我的 update_airfield 函数在给定步长为 2 后基于上述 ASCII 机场的输入。
# ROW 1 [>][ ][<] or ('>', 0, 0)(' ', 0, 1)('<', 0, 2)
# AFTER adding the step and formatting the output
[('>', 2), ('<', 0)]
# I took the 2nd element because its blank and I also removed the x_axis
# because we only need to go along the horizontal line.
然后我可以做的下一步是在编号的位置值之间进行数学比较。如果结果 >= 0,那么我知道他们要么都降落在同一个地方,要么他们互相穿过,所以他们坠毁了。然后我可以将'>'和'
这是我被困在试图以任何给定步骤补偿任何规模、任何数量的飞机的机场的地方。那么你如何开始解决这样的问题呢?标准 python 中是否有数据结构可以帮助我跟踪哪架飞机会相互碰撞?对于在垂直方向上下移动的飞机,我也必须做同样的事情。我正在考虑使用有序字典映射所有内容,但不知道如何进行。任何帮助是极大的赞赏。我希望我已经足够清楚了。
【问题讨论】:
标签: python string list indexing nested