【发布时间】:2017-08-10 19:09:55
【问题描述】:
我目前正在研究 Euler 18 项目,该项目涉及一个数字三角形,并找到从上到下的最大路径的值。它说你可以通过暴力破解或找出一个技巧来完成这个项目。我想我已经找到了诀窍,但我什至无法开始解决这个问题,因为我不知道如何开始在 Python 中操作这个三角形。
https://projecteuler.net/problem=18
这是一个较小的三角形示例:
3
7 4
2 4 6
8 5 9 3
在这种情况下,最大路线将是 3 -> 7 -> 4 -> 9 值 23。
我考虑过的一些方法: 我在其他任务中使用过很多 NumPy,所以我想知道数组是否可以工作。对于那个 4 数基三角形,我也许可以做一个 4x4 数组并用零填充其余部分,但除了不知道如何以这种方式导入数据之外,它似乎也不是很有效。我还考虑了一个列表列表,其中每个子列表都是三角形的一行,但我不知道如何在不经过并在每个术语后添加逗号的情况下将术语分开。
强调一下,我不是在寻找解决问题的方法或解决方案,只是一种我可以开始在 python 中操作三角形数字的方法。
【问题讨论】:
-
我敢打赌
str.split()在这里会很有用。 -
你找到存储三角形的数据模型了吗?
-
我认为
itertools.product的巧妙使用可以在这里解决问题...
标签: python python-3.x