亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)

瀏覽:4日期:2022-07-08 10:31:32

這題的官方難度是Medium,點贊1296,反對505,通過率35.4%。從各項指標來說看起來有些中規中矩,實際上也的確如此。這道題的解法和立意都有些顯得新意不足,但總體來說題目的質量還是可以的,值得一做。

題意

給定一個由數字組成的字符串,我們希望通過這個字符串得到所有有效ip地址的組合。對于一個有效的ip地址而言,它應該有4個數字組成,每一個數字的范圍在0到255之間。

一個字符串可能可以轉化成多個ip地址,我們需要存儲下來所有可以成立的情況。

樣例

Input: '25525511135'Output: ['255.255.11.135', '255.255.111.35']

題解

這道題的題意蠻新穎的,將字符串和ip地址結合在了一起,但是題目的內核說實話有些老生常談了,都是那種將一個大局面轉化成若干個小局面之和的情況。

我們之前做的全排列問題、八皇后問題等等都是這種,拿八皇后問題舉例,看起來是我們要在棋盤上放置皇后。但實際上我們最終想要的結果是放置好了八個皇后之后的局面,這個局面是由放置了每一個皇后之后的小局面組合在一起構成的。所以本質上也可以看成是小局面組裝成大局面的問題。

說了這么多,其實只為了說明一點,就是遇到這些大局面拆分小局面的問題,我們可以率先考慮搜索算法。搜索算法除了可以理解成在一個搜索空間或者是一棵搜索樹當中尋找到解之外,也可以理解成可以用來尋找一些小局面的組合,讓它們組合起來可以構成我們想要的大局面。

套用到這道題上來,很顯然最后我們想要的大局面是合法的IP地址,而構成這個大局面的小局面則是構成IP地址的每一個數字。

這些都搞明白了之后,代碼就很好寫了:

class Solution: def restoreIpAddresses(self, s: str) -> List[str]: n = len(s) if n < 4 or n > 12: return []ret = []def dfs(cur, ips): # 如果遞歸結束,并且ips當中剛好存了4個ip # 則生成答案 if cur >= n:if len(ips) == 4: ret.append(’.’.join(ips[:]))return # 遍歷下一個ip是幾位 for i in range(cur, min(cur+3, n)):# 如果超過1位但是第一位是0,那么非法if s[cur] == ’0’ and i > cur: return# ip必須小于等于255num = int(s[cur: i+1])if num > 255: return# 回溯ips.append(s[cur: i+1])dfs(i+1, ips)ips.pop() dfs(0, []) return ret

總結

有些新意但是思路中規中矩的搜索問題,熟悉dfs和回溯的話不會很難。

今天的文章到這里就結束了,如果喜歡本文的話,請來一波素質三連,給我一點支持吧(關注、轉發、點贊)。

以上就是python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)的詳細內容,更多關于python 生成IP地址的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲国产精品综合久久久 | 青青热久久国产久精品 | 精品福利一区二区三区免费视频 | 国产视频在线观看免费 | 成人做视频免费 | 欧美性色黄 | 精品视频麻豆网站 | 精品一区二区三区视频在线观看免 | 国产一区二区三区在线观看免费 | 大学生毛片a左线播放 | 精品久久久日韩精品成人 | 国产精品亚洲第一区在线28石 | 嫩草免费视频 | 国产精品免费小视频 | 劲爆欧美第1页婷婷 | 欧美黄色高清视频 | 亚洲精品99久久一区二区三区 | 7799国产精品久久久久99 | 亚洲一区二区综合 | japanese无码中文字幕 | 一级人做人a爰免费视频 | 日韩18在线观看地址 | 一区二区三区在线视频观看 | 色综合亚洲综合网站综合色 | 国产免费久久精品99 | 婷婷久操 | 亚洲第一国产 | 免费一级a毛片在线播出 | 青青青视频精品中文字幕 | 亚洲图片色图 | 999yy成年在线视频免费看 | 伊人久久中文字幕久久cm | 亚洲成在人天堂一区二区 | 亚洲图片色图 | 国产亚洲美女精品久久久 | 经典三级一区二区三区视频 | 亚洲高清视频一区 | 国产真实强j视频在线观看 国产真实露脸4p视频 | 国产成人免费在线观看 | 大学生久久香蕉国产线看观看 | 亚洲日韩中文字幕在线播放 |