题目如图片。什么意思呢?
当输入1的时候,就返回1
输入2的时候呢,就要根据前面一个了, 前面是1, 那么我们就读作 1个1, 返回值就是11
输入3的时候呢,前面是11, 那么我们就读作 2个1, 返回值就是21
输入4的时候呢,前面是21, 那么我们就读作 1个2,1个1, 返回值就是1211
输入5的时候呢,前面是1211, 那么我们就读作 1个1,1个2,2个1 返回值就是111211
好了,说完了,可以愉快的开始了!
- class Foo:
- def __init__(self, t):
- self.n = '1'
- for i in range(t - 1):
- self.n = self.__call__()
- def __call__(self):
- return ''.join([''.join([str(len(list(v))), str(i)]) for i, v in groupby(self.n)])
- print(Foo(10).n)
调戏用的:
- class Foo:
- def __init__(self, n):
- self.n = n
- def __call__(self):
- return Foo(''.join([''.join([str(len(list(v))), str(i)]) for i, v in groupby(self.n)]))
- print(Foo('1')()()()().n)