DFS 之 恢復IP位址

2021-09-01 06:01:13 字數 1374 閱讀 5534

1.analyse

給乙個由數字組成的字元創,求出其可能恢復的所有ip位址。比如給定字串「25525512110」,所有可能的ip位址為["255.255.121.10","255.255.12.110"]。

請寫出乙個函式實現該功能,第乙個引數為ip字串,第二個引數為輸出的ip位址陣列。

寫ip位址之前先去看了一下,ip位址的格式特點,32位二進位制數字,每8位一組共四組,如[  ddd.ddd.ddd.ddd ]這樣的一組數的範圍是0-255[即(2^0 -1 ------    2^8-1)],a類位址,b類位址,c類位址,,,,,略略略(吐舌.jpg)

ip位址有三種基本型別,由網路號的第一組數字來表示。

a類位址的第一組數字為1~126。注意,數字0和 127不作為a類位址,數字127保留給內部回送函式,而數字0則表示該位址是本地宿主機,不能傳送。

b類位址的第一組數字為128~191。

c類位址的第一組數字為192~223。

a類網路預設子網掩碼:255.0.0.0

b類網路預設子網掩碼:255.255.0.0

c類網路預設子網掩碼:255.255.255.0

因為要給出所有可能的ip位址,所以考慮到了dfs演算法,不斷嘗試,通過就輸出。

2.code print

#include #include //串流控制標頭檔案

#include #include #include #include #include using namespace std;

int stoi(string s)

int main()

if (s2[0] == '0')break;

}if (s1[0] == '0')break;

} }return 0;

}

3,end

本人把部分沒法實現的stoi(string轉換int)函式實現了

方法來自於

c++中將int轉變成string和string轉變成int 字串流

參考 c++中的atoi()和stoi()函式的用法和區別

還有乙個博主實現了,不過**不太好看,又是乙個用手機拍螢幕的xx。

恢復ip位址 c++語言(資料結構)     博主 菇涼小伙

編寫程式恢復ip位址,給定乙個僅包含數字的字串,恢復它的所有可能的有效ip位址,例如,給定字串為「25525511135」,輸出「255.255.111.35「和」255.255.11.135「(順序可以任意)。

復原IP位址(dfs)

給定乙個只包含數字的字串,用以表示乙個 ip 位址,返回所有可能從 s 獲得的 有效 ip 位址 你可以按任何順序返回答案。有效 ip 位址 正好由四個整數 每個整數字於 0 到 255 之間組成,且不能含有前導 0 整數之間用 分隔。例如 0.1.2.201 和 192.168.1.1 是 有效 ...

leetcode93 復原IP位址 dfs

基本思想 dfs 給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。有效的 ip 位址正好由四個整數 每個整數字於 0 到 255 之間組成 整數之間用 分隔。示例 輸入 25525511135 輸出 255.255.11.135 255.255.111.35 class solut...

IP協議詳解之IP位址要領

1.前言 整個的網際網路就是乙個單一的 抽象的網路。而ip位址就是給網際網路上的每乙個主機 或路由器 的每乙個介面分配乙個在全世界範圍是唯一的32位的識別符號。ip位址的結構使我們可以在網際網路上很方便地進行定址。但是,根據tcp ip協議的規定的ip位址是由32位二進位制數組成的,例如 11010...