Restore IP Addresses

Given a string containing only digits, restore it by returning all possible valid IP address combinations.

For example:

Given"25525511135",

return["255.255.11.135", "255.255.111.35"]. (Order does not matter)

这道题我看到的时候真的是一点想法都没有。。。妈的,什么叫valid IP address format?


....然后我很可耻的开始了看答案。

Restore IP Addresses_第1张图片

这个答案用了3个Loop, 为了将input string分成4段 并且生成all kinds of combination。蛤?4段? 因为3个loop可以有3个index。 比如a,b,c

[0, a]一段, [a, b]一段, [b, c]一段, [c, d]一段。一共4段。

例如: "255.255.11.135"

然后看一下判断isValid的条件是什么? 就是我们分成的4段里,每一段的第一个字不能为0, 除非这个string部分长度只有1.比方说0.110....这种是可以的, 但是01.110..就不可以

 然后每一段长度要在1--3的长度范围内。

在3 个loop里面不断生成的combination里, 每种组合都会经过isValid来判断,只要一个小段不对,整个组合就不能被加入return 的ArrayList.

通过条件的话,res.add(s1 + '.' + s2+ '.' + s3+ '.' +s4);

你可能感兴趣的:(Restore IP Addresses)