leetcode
来源:互联网 发布:sql设计管理 编辑:程序博客网 时间:2024/05/13 12:08
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)
Solution1:
betters
public List<String> restoreIpAddresses(String s) { List<String> result = new ArrayList<>(); int len = s.length(); for (int i = 0; i < 4 && i < len - 2; i++) { for (int j = i + 1; j < i + 4 && j < len - 1; j++) { for (int k = j + 1; k < j + 4 && k < len; k++) { String s1 = s.substring(0, i); String s2 = s.substring(i, j); String s3 = s.substring(j, k); String s4 = s.substring(k, len); if (isValid(s1) && isValid(s2) && isValid(s3) && isValid(s4)) { result.add(s1 + "." + s2 + "." + s3 + "." + s4); } } } } return result; } private boolean isValid(String s) { if (s.length() > 3 || s.length() == 0 || (s.charAt(0) == '0' && s.length() > 1) || Integer.parseInt(s) > 255) return false; return true; }
Solution2:
public List<String> restoreIpAddresses(String s) { List<String> result = new ArrayList<>(); restoreIpAddresses(s, 0, result, "", 4); return result; } private void restoreIpAddresses(String ip, int begin, List<String> result, String temp, int count) { if (count == 0) { if (begin == ip.length()) result.add(temp); return; } for (int i = 1; i < 4; i++) { if (begin + i > ip.length()) break; String s = ip.substring(begin, begin + i); if ((s.charAt(0) == '0' && s.length() > 1) || Integer.parseInt(s) > 255) continue; restoreIpAddresses(ip, begin + i, result, temp + s + (count == 1 ? "" : "."), count - 1); } }
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- wxpython分割窗研究(解决sashPosition=0无效的BUG)
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- git checkout 出错原因 (error: pathspec 'master' did not match any file(s) known to )
- MySQL修改root密码
- asp.net MVC Code First模式在 vs 程序包管理器控制台执行的数据迁移更新语句
- leetcode
- 了解Windows句柄
- JS第四天
- -"The resource could not be loaded because the App Transport Security policy requires........
- WPF: 在 MVVM 设计中实现对 ListViewItem 双击事件的响应
- c++面向对象编程的特点
- 分苹果
- 第二十五、Java面向对象之方法重写
- Spring Boot启动过程(六):内嵌Tomcat中StandardHost、StandardContext和StandardWrapper的启动