class Solution:
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
S="1"
for i in range(1,n): #控制外层的迭代次数
S=self.myfun(S)
return S
def myfun(self,S):
res=""
dict={}
for s in S:
if len(dict) is 0:#空时直接插入键与值
dict[s]=1
else: #这里又要分两种情况,一种是没有同名的存在,就要弹出并做处理 ;若已存在,则自增1
if s not in dict.keys():
name = list(dict.keys())[0]
count = dict[name]
res += str(count) + str(name)
del dict[name]
dict[s] = 1
else:
dict[s]+=1
if len(dict) is 1: #最后将剩余的一对键与值进行处理
name = list(dict.keys())[0]
count = dict[name]
res += str(count) + str(name)
return resLeetcode 38. 数数并说
最新推荐文章于 2024-06-17 00:50:52 发布
本文介绍了一个名为“计数与说数”序列的生成方法,并提供了一个使用 Python 实现的具体示例。该序列从 '1' 开始,之后每一项都是对前一项的描述。例如 '1' 的描述为 '11' (即一个 1),'11' 的描述为 '21' (即两个 1),以此类推。
282

被折叠的 条评论
为什么被折叠?



