# 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.
# Given an integer n where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence.
# Note: Each term of the sequence of integers will be represented as a string.
"""
Input: 1 Output: "1"
Input: 4 Output: "1211"
"""
class Solution(object):
def countAndSay(self, n):
"""
:type n: int
:rtype: str
"""
seq = '1'
for i in range(n - 1):
seq = self.getnext(seq)
return seq
def getnext(self, seq):
nextseq = ''
i = 0
while i < len(seq):
cnt = 1
while i < len(seq) - 1 and seq[i] == seq[i + 1]:
cnt += 1
i += 1
nextseq += (str(cnt) + seq[i])
i += 1
return nextseq
python leetcode 38. Count and Say
最新推荐文章于 2022-10-18 23:53:32 发布