復原ip位址(類似分割字串)

2021-10-20 21:26:54 字數 1095 閱讀 5050

題目鏈結

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

有效的 ip 位址 正好由四個整數(每個整數字於 0 到 255 之間組成,且不能含有前導 0),整數之間用 『.』 分隔。

例如:「0.1.2.201」 和 「192.168.1.1」 是 有效的 ip 位址,但是 「0.011.255.245」、「192.168.1.312」 和 「[email protected]」 是 無效的 ip 位址。

示例 1:

輸入:s = 「25525511135」

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

示例 2:

輸入:s = 「0000」

輸出:[「0.0.0.0」]

示例 3:輸入:s = 「1111」

輸出:[「1.1.1.1」]

示例 4:輸入:s = 「010010」

輸出:[「0.10.0.10」,「0.100.1.0」]

示例 5:輸入:s = 「101023」

輸出:[「1.0.10.23」,「1.0.102.3」,「10.1.0.23」,「10.10.2.3」,「101.0.2.3」]

1.引數和返回值:輸入s和當前分割的起始點indexstart,分割點的數量k以及當前分割的字串path

2.單層遞迴邏輯:遍歷s,從它的每個位置進行分割

3.終止條件:k == 0 分割結束,判斷當前的分割串是否時合法的ip

class

solution

void

backtrace

(string s,

int indexstart,

int k, string path)

//剪枝,前三段最多每個數占三位 i < indexstart + 3

for(

int i = indexstart; i < s.

size()

&& i < indexstart +3;

++i)

} vector

restoreipaddresses

(string s)

};

c 分割字串 類似於boost split

由於c 字串沒有split函式,所以字串分割單詞的時候必須自己手寫,也相當於自己實現乙個split函式吧!如果需要根據單一字元分割單詞,直接用getline讀取就好了,很簡單 1 include 2 include 3 include 4 include 5 using namespace std ...

SQL裡類似SPLIT的分割字串函式

sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t sql不支援陣列,所以處理下來比較麻煩。下邊的函式,實現了象陣列一樣去處理字串。一,用臨時表作為陣列 create function f split c varchar 2000 spl...

SQL裡類似SPLIT的分割字串函式

sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t sql不支援陣列,所以處理下來比較麻煩。下邊的函式,實現了象陣列一樣去處理字串。一,用臨時表作為陣列 複製 如下 create function f split c varchar 20...