LeetCode 93 Restore IP Addresses
2017-10-11 22:16
417 查看
Given a string containing only digits, restore it by returning all possible valid IP address combinations.For example:
Given
Given
"25525511135",return
["255.255.11.135", "255.255.111.35"]. (Order does not matter)给一个字符串,转成可能组成的IP数
public class Solution { //深度优先遍历,DFS即可实现 List<String> res=new ArrayList<String>(); public List<String> restoreIpAddresses(String s) { //特殊情况处理 if(s==null || s.length()<=0 || s.length()<4 || s.length()>12) return res; String one=""; byDFS(s,0,0,one); return res; } //index 记录开始的位置,k记录截取的数量, void byDFS(String s, int index,int k,String one) { if(k==3) { String tmp = s.substring(index, s.length()); if(check(tmp)) res.add(one+tmp); return ; }else { //每一次最长的截取长度是i,最短1位,最长3位 for(int i=1;i<=3 && index+i < s.length() ;i++) { String tmp = s.substring(index, index+i); if(check(tmp)) byDFS(s, index+i, k+1, one+tmp+"."); } } } public boolean check(String ip) { //以0开始的字符串,只有0是合理的,其余的比如001等等都不是合理的 if(ip.charAt(0)=='0') { if(ip.equals("0")) return true; else return false; }else { int ipNum=Integer.parseInt(ip); if(ipNum>0 && ipNum<=255) return true; else return false; } } }哎,映客线下笔试题。好难哦。虽然想到是回溯,但是没做出来,没想到是LT原题。gg。
相关文章推荐
- leetcode-93 Restore IP Addresses
- LeetCode 93 Restore IP Addresses
- Leetcode(93): Restore IP Addresses
- [JAVA]LeetCode93 Restore IP Addresses
- LeetCode(93) Restore IP Addresses
- LeetCode(93) Restore IP Addresses
- LeetCode93 Restore IP Addresses
- LeetCode 93 Restore IP Addresses
- leetcode 93 .Restore IP Addresses
- [Leetcode 93, Medium] Restore IP Addresses
- LeetCode - 93 Restore IP Addresses
- leetcode[93]Restore IP Addresses
- LeetCode93——Restore IP Addresses
- [leetcode 93] Restore IP Addresses
- leetcode[93] Restore IP Addresses
- LeetCode-93-Restore IP Addresses 暴力
- leetcode 93: Restore IP Addresses
- LeetCode 93 Restore IP Addresses
- LeetCode 93 Restore IP Addresses(Python详解及实现)
- leetcode做题总结,题目Restore IP Addresses 93