LeetCode0093 復原IP位址

2021-10-04 09:46:04 字數 619 閱讀 9236

給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。

示例:

輸入: 「25525511135」

輸出: [「255.255.11.135」, 「255.255.111.35」]

兩個經驗:第一,凡是字串的子串行或配準問題應考慮動態規劃dp,第二,需要求出所有可能情況首先考慮用遞迴。

首先,這道題符合第二種情況,所以我們要用遞迴來解;

用k來表示當前還需要分的段數,如果k = 0,則表示三個點已經加入完成,四段已經形成,若這時字串剛好為空,則將當前分好的結果儲存;

其次,若k != 0, 則對於每一段,我們分別用一位,兩位,三位來嘗試,分別判斷其合不合法,如果合法,則呼叫遞迴繼續分剩下的字串;

最後,和求出所有合法組合。

class

solution

void

restore

(string s,

int k, string out, vector

&res)

else}}

}bool

isvalid

(string s)

};

演算法面試 LeetCode 0093復原IP位址

回溯 dfs 這是乙個回溯函式backtrack prev pos 1,dots 3 的演算法,該函式使用上乙個放置的點 prev pos 和待放置點的數量 dots 兩個引數 遍歷三個有效位置curr pos 以放置點 檢查從上乙個點到現在點中間的部分是否有效 是 放置該點。檢查全部 3個點是否放...

leetcode 復原IP位址

給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。由於ip每個段在 0,255 之間,暴力迴圈設定點的位置最大次數3 3 3 27所以就暴力解決了。param s return public list restorei...

LeetCode93 復原IP位址

首先需要知道ip位址的特性,總共有四段,每段的取值都在 0,255 之間,四段之間用3個 隔開。目標就是如何放置這3個分隔符,使得ip位址是合法的,然後把合法的ip位址記錄下來。方法一 暴力解法。四段的長度都有取1 3的可能性,遍歷所有的情況,記錄合法ip位址。當然類似000,001,00,010這...