2017-08-10 27 views
1

我目前正在使用Project Euler 18,它涉及到一个数字三角形并从上到下查找最大路径的值。它说你可以通过暴力强制它或通过弄清楚它的一个技巧来做这个项目。我想我已经知道了这个诀窍,但我甚至无法开始解决这个问题,因为我不知道如何开始在Python中操纵这个三角形。如何将我的数据导入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

我敢打赌'str.split()'在这里很有用。 – Kevin

+3

你有没有想出一个数据模型来存储三角形? – drsnark

+0

[如何从python3中的单行输入读取整数数组]的重复项(https://stackoverflow.com/questions/18332801/how-to-read-an-array-of-integers-from-single -input-in-python3) – mkrieger1

回答

3

这里是一个小片段,帮助你与读取数据:

rows = [] 
with open('problem-18-data') as f: 
    for line in f: 
     rows.append([int(i) for i in line.rstrip('\n').split(" ")]) 
+0

请告诉我,如果你想我添加任何其他小片段,可以帮助你:) –

+0

这是一个可悲的不完整的答案在其目前的形式。所以你已经读过数据了,那又怎么样?在这个问题的核心问题上,没有尝试回答最长路径问题。 – blacksite

+0

过得很糟糕吗? –