The count-and-say sequence is the sequence of integers with the first five terms as following:
1. 1
2. 11
3. 21
4. 1211
5. 111221
1 is read off as “one 1” or 11.
11 is read off as “two 1s” or 21.
21 is read off as “one 2, then one 1” or 1211.
思路:从第一行开始依次读出,每行的字符串都重新保存。先计算字符串的长度,然后开始遍历,设置num=1,每当当前位置i的字符与下一个位置的字符相同时,num+1,不同时则将num和字符加进temp字符串。一直进行直到遍历完当前字符串,然后将字符串替换为temp字符串,进行下一行的读数,就这样进行n-1次,得到第n行的字符串。
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
seq = '1'
while n - 1 > 0:
length = len(seq)
i = 0
temp = ''
while i < length:
num = 1
digit = seq[i]
while i + 1 < length and seq[i] == seq[i+1]:
num += 1
i += 1
temp = temp + str(num) + digit
i += 1
seq = temp
n -= 1
return seq