题目:git
Given a string containing only digits, restore it by returning all possible valid IP address combinations.spa
For example:
Given "25525511135"
, .net
return ["255.255.11.135", "255.255.111.35"]
. (Order does not matter) rest
题解:code
利用循环递归解决子问题。对于每一个段内数来讲,最多3位最少1位,因此在每一层能够循环3次,来尝试填段。由于IP地址最多4个分段,当层数是3的时候说明已经尝试填过3个段了,那么把剩余没填的数段接到结尾便可。
blog
这个过程当中要保证的是填的数是合法的,最后拼接的剩余的数也是合法的。递归
注意开头若是是0的话要特殊处理,若是开头是0,判断整个串是否是0,不是的话该字符就是非法的。由于001,01都是不对的。string
代码以下:it
Refrence:http://blog.csdn.net/u011095253/article/details/9158449io