1. 题面
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
1 2
| 输入: "25525511135" 输出: ["255.255.11.135", "255.255.111.35"]
|
2. 解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| class Solution { public List<String> restoreIpAddresses(String s) { List<String> list = new ArrayList<String>(); for(int i = 0;i<s.length()-2 && i<4;i++) { for(int j = i+1;j<s.length()-1 && j<4+i;j++) { for(int k = j+1;k<s.length() && j<4+k;k++) { String a = s.substring(0,i); String b = s.substring(i,j); String c = s.substring(j,k); String d = s.substring(k,s.length()); if(isValid(a) && isValid(b) && isValid(c) && isValid(d)) { System.out.println(a+"."+b+"."+c+"."+d); list.add(a+"."+b+"."+c+"."+d); } } } } return list; } public boolean isValid(String str) { if(str.length() == 0 || (str.charAt(0) == '0'&&str.length()>1) || str.length() > 3 || Integer.parseInt(str) > 255) { return false; } return true; } }
|
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏