这是一道简单题,但是我做了很久,主要难度在读题和理解题上。
思路:给定一个数字,返回这个数字报数数列。我们可以通过从1开始,不断扩展到n的数列。数列的值为前一个数列的count+num,所以我们不断叠加来完成。
class Solution: def countAndSay(self, n: int) -> str: # 第一个值直接赋予 pre_num = "1" for i in range(1,n): # 用next_num 记录当前序列,num为前一个序列的第一个值 next_num,num,count="",pre_num[0],1 for j in range(1,len(pre_num)): # 如果num和前一个序列的下一个值相等,则将count +1 if num==pre_num[j]: count+=1 else: # 如果不等,将当前count +num 写入next_num,并将count置为1, # num取 当前pre_num的值 next_num += str(count) + num count =1 num =pre_num[j] next_num += str(count) + num pre_num = next_num return pre_num
原文地址:https://www.cnblogs.com/cchenyang/p/11568712.html
时间: 2024-10-10 21:53:56