日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

外观数列Python解法

發布時間:2023/12/19 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 外观数列Python解法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

給定一個正整數 n ,輸出外觀數列的第 n 項。

「外觀數列」是一個整數序列,從數字 1 開始,序列中的每一項都是對前一項的描述。

你可以將其視作是由遞歸公式定義的數字字符串序列:

countAndSay(1) = "1"
countAndSay(n) 是對 countAndSay(n-1) 的描述,然后轉換成另一個數字字符串。
前五項如下:

1. ? ? 1
2. ? ? 11
3. ? ? 21
4. ? ? 1211
5. ? ? 111221
第一項是數字 1?
描述前一項,這個數是 1 即 “ 一 個 1 ”,記作 "11"
描述前一項,這個數是 11 即 “ 二 個 1 ” ,記作 "21"
描述前一項,這個數是 21 即 “ 一 個 2 + 一 個 1 ” ,記作 "1211"
描述前一項,這個數是 1211 即 “ 一 個 1 + 一 個 2 + 二 個 1 ” ,記作 "111221"
要 描述 一個數字字符串,首先要將字符串分割為 最小 數量的組,每個組都由連續的最多 相同字符 組成。然后對于每個組,先描述字符的數量,然后描述字符,形成一個描述組。要將描述轉換為數字字符串,先將每組中的字符數量用數字替換,再將所有描述組連接起來。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/count-and-say
?

例:

輸入:n = 4
輸出:"1211"
解釋:
countAndSay(1) = "1"
countAndSay(2) = 讀 "1" = 一 個 1 = "11"
countAndSay(3) = 讀 "11" = 二 個 1 = "21"
countAndSay(4) = 讀 "21" = 一 個 2 + 一 個 1 = "12" + "11" = "1211"

解析:

題目的意思是給出的數字是需要解釋的輪數,n=4說明要解釋到第四層。對1進行逐層遍歷,將遍歷的結果變為第二層的遍歷輸入。將字符串從前向后遍歷,相同計數,不同就“入棧”,全部遍歷完成后輸出結果即可。

class Solution(object):def countAndSay(self, n):""":type n: int:rtype: str"""res = '1$' # 后面添加一個符號方便比較最后一個字符for i in range(1, n):t, sum = '', 1for j in range(1, len(res)):if res[j] == res[j - 1]: # 最后一個數字字符和$一定不同,防止報錯sum += 1else:t += (str(sum) + res[j - 1]) # ”入棧“sum = 1t += '$'res = treturn res[:-1] # 最后一個$不輸出

總結

以上是生活随笔為你收集整理的外观数列Python解法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。