報數序列是指一個整數序列,按照其中的整數的順序進行報數,獲得下一個數。其前五項以下:spa
1. 1 2. 11 3. 21 4. 1211 5. 111221
1
被讀做 "one 1"
("一個一"
) , 即 11
。
11
被讀做 "two 1s"
("兩個一"
), 即 21
。
21
被讀做 "one 2"
, "one 1"
("一個二"
, "一個一"
) , 即 1211
。code
給定一個正整數 n ,輸出報數序列的第 n 項。blog
注意:整數順序將表示爲一個字符串。字符串
示例 1:io
輸入: 1 輸出: "1"
示例 2:class
輸入: 4 輸出: "1211"
class Solution: def countAndSay(self, n): """ :type n: int :rtype: str """ if not n : return False if n < 1:return False if n == 1: return '1' if n == 2: return '11' start = '11' for i in range(3,n+1): #從第3次開始循環至數字n-1結束 tmp = '' index = 0 for i in range(len(start)-1): #循環到 start字符串長度減一結束,防止下標溢出 if start[i] == start[i+1]: index += 1 else: index +=1 tmp += str(index)+start[i] #str(index) ==1 ,start[i] 當前數值 index = 0 #index 歸零 index +=1 tmp += str(index) + start[i+1] #根據前面的index來判斷最後一位是否和前一位相等,相等就加index+1,不等就是0+1,而後加上上一次循環字符串的最後一位 start = tmp #內循環結束後,爲下次循環的start賦值 return tmp