我正在研究Project 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中三角形的数字。
答案 0 :(得分:3)
这是一个可以帮助您阅读数据的小片段:
rows = []
with open('problem-18-data') as f:
for line in f:
rows.append([int(i) for i in line.rstrip('\n').split(" ")])