題目: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