> 社会
跟黄哥学编程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() 转换一下即可。
本文内容由小婷整理编辑!