Restore IP Addresses
2014-02-07 13:54
155 查看
Given a string containing only digits, restore it by returning all possible valid IP address combinations.
For example:
Given
return
思路:backtracking。搜索所有解空间。
几点注意的地方:
1. string 的递归传递,用 string 分开写,temp + s.substring(0,1) + "." 这样回来的时候,也会回到原来的值。
2. 为了每次只加到0~3的位置,所以i的值只限制到3,那么相应的string 的s值就应该每次传递的时候变换。每次取完了,就应该去掉。
3. 结束的时候应该是count = 3,的时候,因为最后只需要加上最后一段就可以了。
4. 最后判断isvalid的时候,需要判断0开头的string是不是0.
For example:
Given
"25525511135",
return
["255.255.11.135", "255.255.111.35"]. (Order does not matter)
思路:backtracking。搜索所有解空间。
几点注意的地方:
1. string 的递归传递,用 string 分开写,temp + s.substring(0,1) + "." 这样回来的时候,也会回到原来的值。
2. 为了每次只加到0~3的位置,所以i的值只限制到3,那么相应的string 的s值就应该每次传递的时候变换。每次取完了,就应该去掉。
3. 结束的时候应该是count = 3,的时候,因为最后只需要加上最后一段就可以了。
4. 最后判断isvalid的时候,需要判断0开头的string是不是0.
public class Solution { public List<String> restoreIpAddresses(String s) { List<String> list = new ArrayList<String>(); if(s == null || s.length() < 4 || s.length() > 12) return list; collect(s, 0, list, ""); return list; } public void collect(String s, int count, List<String> list, String temp){ if( count == 3 && isvalid(s)){ list.add(temp+s); return; } for(int i=0; i<4 && i<s.length(); i++){ if(isvalid(s.substring(0,i))){ collect(s.substring(i), count+1, list, temp + s.substring(0,i) + "."); } } } public boolean isvalid(String str){ if(str == null || str.length()>4 || str.length() <=0) return false; if(str.charAt(0) == '0'){ return str.equals("0"); } int val = Integer.parseInt(str); return (0<=val && val<=255); } }
相关文章推荐
- Restore IP Addresses--LeetCode
- [leetcode]Restore IP Addresses @ Python
- Restore IP Addresses
- [LeetCode]Restore IP Addresses
- Restore IP Addresses & Sort List & Reorder List
- 存储合法IP地址(Restore IP Addresses)
- Restore IP Addresses
- Restore IP Addresses
- Restore IP Addresses Java
- Leetcode 之 Restore IP Addresses
- Leetcode : Restore IP Addresses
- leetcode_Restore IP Addresses
- leetcode 93. Restore IP Addresses
- leetcode_c++:Restore IP Addresses(091)
- Leetcode#93 Restore IP Addresses
- Restore IP Addresses
- [LeetCode]Restore IP Addresses, 解题报告
- Restore IP Addresses
- [Leetcode 93, Medium] Restore IP Addresses
- Leetcode Restore IP Addresses