python数列求和1+11+111前n项_Leetcode Python算法(11)-----外观数列

本文介绍了LeetCode第11题的Python解决方案,包括迭代和递归两种方法。迭代法通过逐层构建外观数列,递归法则利用自身函数调用来生成数列。详细代码和解析帮助理解解题思路。
摘要由CSDN通过智能技术生成

原题重现:day011

这题目是相当的绕口,其实我是不会做的,所以参考了一下大神的答案。

class Solution:

def countAndSay(self, n: int) -> str:

prev_person = '1'

for i in range(1, n):   #要处理的层数

next_person = ''

num = prev_person[0]

count = 1

for j in range(1, len(prev_person)):

if prev_person[j] == num:    #j在num后一个查找

count += 1

else:

next_person += str(count) + num

count = 1

num = prev_person[j]

next_person += str(count) + num

prev_person = next_person

return prev_person

该代码在我看来就是还原了题目说明的流程。从第一个字符串“1”开始,被比较的数字num从pre_peerson第一个开始,第二个和第一个比较以此类推。如果重复就计数器加一,如果不相等的话就添加到字符串当中,同时计数器重置为1,num顺移到下一个。最后加上最后一个字符串和它的计数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值