1. 题目
报数序列是指一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:
1. 1 2. 11 3. 21 4. 1211 5. 111221
1
被读作 "one 1"
("一个一"
) , 即 11
。11
被读作 "two 1s"
("两个一"
), 即 21
。21
被读作 "one 2"
, "one 1"
("一个二"
, "一个一"
) , 即 1211
。
给定一个正整数 n ,输出报数序列的第 n 项。
注意:整数顺序将表示为一个字符串。
2. 示例
示例 1:
输入: 1 输出: "1"
示例 2:
输入: 4 输出: "1211"
3. 解答
python3 60ms
class Solution: def countAndSay(self, n): """ :type n: int :rtype: str """ seq = "1" if n == 1: return seq for i in range(n-1): count = 1 new_seq = '' if len(seq) == 1: seq = "11" continue for j in range(1, len(seq)): # print(seq[j]) if seq[j] != seq[j-1]: new_seq += (str(count) + seq[j-1]) count = 1 else: count += 1 if j == len(seq)-1: new_seq += (str(count) + seq[j]) # print(new_seq) seq = new_seq return seq solution = Solution() s = solution.countAndSay(4) print(s)