搜索
写经验 领红包
 > 社会

跟黄哥学编程pytho求解外观数列问题(pytho外观设置)

导语:跟黄哥学编程:Python求解外观数列

有人问下面的题目

这个问题是“外观数列”的问题。

外观数列(Look-and-say sequence)第n项描述了第n-1项的数字分布。它以1开始:

1:读作1个“1”,即11

11:读作2个“1”,即21

21:读作1个“2”,1个“1”,即1211

1211:读作1个“1”,1个“2”,2个“1”,即111221

111221:读作3个“1”,2个“2”,1个“1”,即312211

1, 11, 21, 1211, 111221, 312211, 13112221, 1113213211, ... (OEIS中的数列A005150)

如果从 0 至 9 中的任选一个d数字生成这个数列,那么可以确定d会保留在每一项的最后一位,如果d不是1的话,那么这个数列是:

d, 1d, 111d, 311d, 13211d, 111312211d, 31131122211d, …

解题思路:

1、要写一个函数去分解111221 这样的数字,输入是这样的数字,输出是这个数字出现的次数和该数字的组合。

2、用栈来保存遍历数字(数字转为字符串)。

3、用字典保存上一项。

按照上面的思路黄哥所写的代码如下:

可以将字典中的字符串变为数字,用int() 转换一下即可。

本文内容由小婷整理编辑!