Leetcode 38.報數(Python3)
阿新 • • 發佈:2018-12-14
38.報數
報數序列是一個整數序列,按照其中的整數的順序進行報數,得到下一個數。其前五項如下:
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(1 ≤ n ≤ 30),輸出報數序列的第 n 項。
注意:整數順序將表示為一個字串。
示例 1:
輸入: 1
輸出: "1"
示例 2:
輸入: 4
輸出: "1211"
程式碼:
#count-and-say class Solution: def countAndSay(self, n): """ :type n: int :rtype: str """ if n == 1: return '1' s = '1' for i in range(2,n + 1): res = '' count = 1 for j in range(1,len(s)): if s[j - 1] == s[j]: count += 1 else: res += str(count) + s[j - 1] count = 1 res += str(count) + s[-1] s = res return s
連結: