給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。
示例:輸入: 「25525511135」
輸出: [「255.255.11.135」, 「255.255.111.35」]
只用確認三個點的位置就可以了,所以用三個迴圈來確定點的位置,如果太大了直接continue,如果乙個長度不是1的部分頭部是0,也continue。
class
solution
for(
int i1 =
0; i1 < s.
length()
-3; i1++
)int t1 =0;
for(
int j =
0; j <= i1; j++)if
(t1 >=
256)
for(
int i2 = i1 +
1; i2 < s.
length()
-2; i2++
)int t2 =0;
for(
int j = i1 +
1; j <= i2; j++)if
(t2 >=
256)
for(
int i3 = i2 +
1; i3 < s.
length()
-1; i3++
)int t3 =0;
for(
int j = i2 +
1; j <= i3; j++)if
(t3 >=
256)
if(s[i3 +1]
=='0'
&& i3 +
1!= s.
length()
-1)int t4 =0;
for(
int j = i3 +
1; j <= s.
length()
-1; j++)}
if(t4 >=
0&& t4 <
256)}}
}return res;}}
;
LeetCode93 復原IP位址
首先需要知道ip位址的特性,總共有四段,每段的取值都在 0,255 之間,四段之間用3個 隔開。目標就是如何放置這3個分隔符,使得ip位址是合法的,然後把合法的ip位址記錄下來。方法一 暴力解法。四段的長度都有取1 3的可能性,遍歷所有的情況,記錄合法ip位址。當然類似000,001,00,010這...
leetcode 93 復原IP位址
先判斷字串字串長度是否處於 4,12 然後判斷字串將字串分成從ip位址的第一位進行選擇 ip位址每一位最大為255 最小為0 ip位址的每一位所包含的字串中的位數分別是1 2 3 位 ip位是三位時,要判斷是否大於255 void restore std vector a,std string s,...
leetcode93 復原IP位址
給定乙個只包含數字的字串,復原它並返回所有可能的 ip 位址格式。示例 輸入 25525511135 輸出 255.255.11.135 255.255.111.35 思路 回溯法。這題沒有想象那麼難,規則有點東西。用回溯就能做 擊敗81 我將每次返回的list,拼接起來,再進行剪枝 當遇上字首的0...