我想先介绍look-and-say序列。它就像a = {1, 11, 21, 1211, 111221 ...
python look-and-say序列改进
该系统检查前一位数字并计数数字。
1 = one 1 (so = 11)
11 = two 1 (so = 21)
21 = one 2 one 1 (so = 1211)
由于序列的规则,没有号码可以超越3,因此,创建一个翻译表可以适应,但它不是语义的,我不喜欢它。
我想要的是一个脚本,用于评估给定的值并返回一个看起来像是一样的字符串。
但是,要超越极限,我希望它甚至可以评估字符,因此它可以返回1A2b41
。
我一直在努力让它工作几个小时,逻辑变坏了,我现在有一个脑冻结。
这是实际上不起作用的脚本(返回错误结果),但它至少可以给你这个想法。
def seq(a):
k,last,result,a = 1,'','',str(a)
for i in range(len(a)):
if last==a[i]:k+=1
else:
result = result+str(k)+a[i]
k=1
last = a[i]
return result
这里有什么问题? –
“我想要的是一个评估给定值并返回一个看起来像是一样的字符串的脚本。”要更清楚。我想要一个函数来评估look-and-say序列的下一个值,并在主文章中描述这些特征。 –
就这么你知道,我总是发现它在调试我自己的代码时从长远来看更有帮助。 –