class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
if n<=0:
return None
if n>30:
return None
list1=['1','11']
for i in range(1,n-1):
a=''
res=1
for j in range(1,len(list1[i])):
if list1[i][j]!=list1[i][j-1]:
a=a+str(res)+list1[i][j-1]
res=1 # res置1
else:
res=res+1
a=a+str(res)+list1[i][j] #对最后一位字符的处理
list1.append(a)
return list1[n-1]
重点:
- 记录前一个字符结果
- 使用两个中间变量res/a
- 下标要搞清楚