最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年10月15日 11:31:13   作者:TechFlow2019  
這篇文章主要介紹了python 生成所有有效的IP地址的方法,幫助大家解答題目,學(xué)習(xí)python,感興趣的朋友可以了解下

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

題意

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

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

樣例

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

題解

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

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

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

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

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

class Solution:
  def restoreIpAddresses(self, s: str) -> List[str]:
    n = len(s)
    if n < 4 or n > 12:
      return []
    
    ret = []
    
    def dfs(cur, ips):
      # 如果遞歸結(jié)束,并且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必須小于等于255
        num = 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

總結(jié)

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

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

以上就是python 輸入字符串生成所有有效的IP地址(LeetCode 93號題)的詳細內(nèi)容,更多關(guān)于python 生成IP地址的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解設(shè)計模式中的工廠方法模式在Python程序中的運用

    詳解設(shè)計模式中的工廠方法模式在Python程序中的運用

    這篇文章主要介紹了設(shè)計模式中的工廠方法模式在Python程序中的運用,工廠方法模式主張程序在設(shè)計時要可以根據(jù)不同的條件生成各種類的實例,需要的朋友可以參考下
    2016-03-03
  • python控制結(jié)構(gòu)的條件判斷與循環(huán)示例詳解

    python控制結(jié)構(gòu)的條件判斷與循環(huán)示例詳解

    這篇文章主要為大家介紹了python控制結(jié)構(gòu)的條件判斷與循環(huán)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 一文詳解Python中復(fù)合語句的用法

    一文詳解Python中復(fù)合語句的用法

    復(fù)合語句是包含其它語句(語句組)的語句;它們會以某種方式影響或控制所包含其它語句的執(zhí)行。通常,復(fù)合語句會跨越多行,雖然在某些簡單形式下整個復(fù)合語句也可能包含于一行之內(nèi)。本文就來講講Python中復(fù)合語句的使用
    2022-07-07
  • Django前后端分離csrf token獲取方式

    Django前后端分離csrf token獲取方式

    這篇文章主要介紹了Django前后端分離csrf token獲取方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python之Scrapy爬蟲框架安裝及使用詳解

    Python之Scrapy爬蟲框架安裝及使用詳解

    這篇文章主要為大家詳細介紹了Python Scrapy爬蟲框架安裝及簡單使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Django模板語法、請求與響應(yīng)的案例詳解

    Django模板語法、請求與響應(yīng)的案例詳解

    本文主要介紹了Django的模板語法、請求與響應(yīng),包括如何創(chuàng)建和渲染模板文件、傳參機制、靜態(tài)文件的引入以及如何處理GET和POST請求,通過綜合小案例,展示了如何使用Django實現(xiàn)一個簡單的登錄頁面并根據(jù)用戶名密碼進行驗證,感興趣的朋友跟隨小編一起看看
    2025-01-01
  • Python安裝后測試連接MySQL數(shù)據(jù)庫方式

    Python安裝后測試連接MySQL數(shù)據(jù)庫方式

    這篇文章主要介紹了Python安裝后測試連接MySQL數(shù)據(jù)庫方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 一篇文章帶你了解python集合基礎(chǔ)

    一篇文章帶你了解python集合基礎(chǔ)

    今天小編就為大家分享一篇關(guān)于Python中的集合介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-08-08
  • Python?turtle.shape()用法及實戰(zhàn)案例

    Python?turtle.shape()用法及實戰(zhàn)案例

    turtle是Python自帶的一個小型的繪圖庫,它可以幫助我們快速地繪制簡單的圖形,這篇文章主要給大家介紹了關(guān)于Python?turtle.shape()用法及實戰(zhàn)案例的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Python中不同進制互相轉(zhuǎn)換(二進制、八進制、十進制和十六進制)

    Python中不同進制互相轉(zhuǎn)換(二進制、八進制、十進制和十六進制)

    這篇文章主要介紹了Python中不同進制互相轉(zhuǎn)換,本文講解了二進制、八進制、十進制和十六進制的相與轉(zhuǎn)換實現(xiàn)代碼,需要的朋友可以參考下
    2015-04-04

最新評論

舟山市| 浙江省| 佛教| 陵川县| 峡江县| 禹州市| 秦安县| 札达县| 长海县| 丹阳市| 西盟| 元江| 乐山市| 阿克苏市| 建湖县| 宁化县| 龙山县| 荆门市| 竹山县| 临沭县| 来安县| 黑龙江省| 镇江市| 巩留县| 石渠县| 邵阳市| 绥棱县| 开远市| 盐山县| 将乐县| 嵩明县| 十堰市| 阿拉善左旗| 丰都县| 讷河市| 望城县| 邯郸市| 昔阳县| 靖江市| 泉州市| 大冶市|