Leetcode 38 報數

報數序列是指一個整數序列,按照其中的整數的順序進行報數,獲得下一個數。其前五項以下:ide

1.     1
2.     11
3.     21
4.     1211
5.     111221

 

1 被讀做  "one 1"  ("一個一") , 即 11
11 被讀做 "two 1s" ("兩個一"), 即 21
21 被讀做 "one 2",  "one 1" ("一個二" ,  "一個一") , 即 1211spa

給定一個正整數 n ,輸出報數序列的第 n 項。code

注意:整數順序將表示爲一個字符串。blog

示例 1:ip

輸入: 1 輸出: "1"

 

示例 2:字符串

輸入: 4 輸出: "1211"

 

 解答:io

(本質就是找規律)class

def countAndSay( n): if n==1: return '1'
    if n==2: return '11' pre='11' i=3
    while i <n+1: #print(pre)
        result='' count=1 l=len(pre) for k in range(1,l): if pre[k-1]==pre[k]:#與前一個數字相同就加一
                count+=1#記錄1或2的數量
            else: result+=str(count)+pre[k-1] count = 1  # 出現不一樣數字就將結果記錄,並重置count爲1
        result+=str(count)+pre[k]#最後的結果與以前的相加
        pre=result i+=1
    return result
View Code
相關文章
相關標籤/搜索