報數(LeetCode第38題)

2021-08-30 15:38:37 字數 646 閱讀 9822

class solution:

def countandsay(self, n):

""":type n: int

:rtype: str

"""output_str = "1"

for i in range(n-1): #for i in range(0)這是不執行的

count = 0

s = "" #儲存第i個的報數值,在新一輪迴圈之後清空

frist = output_str[0]

for c in output_str:

if c == frist:

count += 1

else:

s += str(count) + frist #這是不等情況下,s重新新增元素

frist = c

count = 1

s += str(count) + c #這是在c==frist情況下,s重新新增元素(因為在最後乙個元素時,就是相等情況)

output_str = s #把s賦值給output_str之後進行新一輪的迴圈則s可以初始化為""

#first = output_str[0] #這個可以不要,結果一樣

return output_str

LeetCode第38題 報數

題目報數序列是乙個整數序列,按照其中的整數的順序進行報數,得到下乙個數。其前五項如下 1.12.11 3.21 4.1211 5.111221 1 被讀作 乙個一 即 11。11 被讀作 兩個一 即 21。21 被讀作 乙個二 乙個一 即 1211。給定乙個正整數 n 1 n 30 輸出報數序列的第...

Leetcode刷題(38 報數)

示例 1 1121 1211 111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 1211。給定乙個正整數 n 1 n 30 輸出報數序列的第 n 項。注意 整數順序將表示為乙個字串。每次迭代...

LeetCode38 報數 水題

一開始每太看懂題目 其實就是一開始是 1 然後就是對上面報數 1乙個1 11 再對上面報數 2個1 21 再對上面報數 乙個2,乙個1 1211 報數,就是將上面的數字從左到右,將個數和數字念出來。這就好辦了,建立乙個陣列就好了,每次取前面的數字 對它遍歷,計算個數。很多坑沒有注意到,粗心了 pub...