地址:点击打开链接
看不懂题目,后来百度了下才知道,当前数字需要对前面一个数字进行计算,相邻而且相同的数的个数即为下一个字符串
比如第一个数是1,算第二个数时,前一个数有一个1所以当前字符串为11,下个数就是2个1即为21
读懂题目就很好算了,计数即可
答案:
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
if n <= 0:
return ""
if n == 1:
return "1"
say = "1"
for i in range(n-1):
say = self.count(say)
return say
def count(self,sayStr):
ret = sayStr[0]
temp = 0
res = ""
for char in sayStr:
if ret == char:
temp += 1
else:
res += str(temp) + ret
temp = 1
ret = char
res += str(temp) + ret
return res