題目鏈結
給定乙個只包含數字的字串,復原它並返回所有可能的 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...