我正在处理欧拉项目的 problem 220 (看起来很简单,与一些 其他人 - 我想我会尝试换一个更高编号的!)
到目前为止我有:
D = "Fa"
def iterate(D,num):
for i in range (0,num):
D = D.replace("a","A")
D = D.replace("b","B")
D = D.replace("A","aRbFR")
D = D.replace("B","LFaLb")
return D
instructions = iterate("Fa",50)
print instructions
现在,这适用于低值,但当您将其重复设置得更高时,您只会收到“内存错误”。任何人都可以建议一种方法来克服这个问题吗?我真的想要一个包含下一步说明的字符串/文件。
最佳答案
诀窍在于注意在每次迭代中运行字符串时会出现哪些模式。尝试为 1 到 10 之间的 n 评估 iterate(D,n)
,看看您是否能发现它们。还通过计算结束位置和步数的函数提供字符串,并在那里寻找模式。
然后您可以使用这些知识将算法简化为根本不使用这些字符串的东西。
关于python - 如何在 Python 中处理非常长的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/353152/