Leetcode題解 38 外觀數列

2021-10-07 17:43:36 字數 753 閱讀 3089

題解:

class solution:

def countandsay(self, n: int) -> str:

if n == 1:

return '1'

new_str = ''

last_str = self.countandsay(n-1) # 獲取上次的報數

cur = last_str[0] # 當前要統計的字元,初始值為last_str的首字元

cur_t = 0 # 當前字元出現的次數

for i in last_str:

if i == cur:

# 如果相等,則計數+1

cur_t += 1

else:

# 否則先報一次數,然後重新初始化開始統計

new_str +=str(cur_t) + cur

cur = i

cur_t = 1

# 迴圈結束後,還要再報一次,因為如果最後是以if條件退出迴圈的,最後幾個相同的字元並未報出來

new_str += str(cur_t) + cur

return new_str

leetcode38 外觀數列

外觀數列 是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下 1.1 2.11 3.21 4.1211 5.111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一 即 12...

LeetCode38 外觀數列

題目描述 外觀數列 是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下 1.1 2.11 3.21 4.1211 5.111221 1 被讀作 one 1 乙個一 即 11。11 被讀作 two 1s 兩個一 即 21。21 被讀作 one 2 one 1 乙個二 乙個一...

leetcode 38 外觀數列

38.外觀數列 給定乙個正整數 n 1 n 30 輸出外觀數列的第 n 項。注意 整數序列中的每一項將表示為乙個字串。外觀數列 是乙個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。前五項如下 1 11 21 1211 111221 第一項是數字 1 描述前一項,這個數是 1 即 乙個...