Leetcode 93.复制IP地址
Posted kexinxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 93.复制IP地址相关的知识,希望对你有一定的参考价值。
复制IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
示例:
输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]
1 import java.util.ArrayList; 2 import java.util.List; 3 4 class Solution { 5 private List<String> result = new ArrayList<>(); 6 int length; 7 public List<String> restoreIpAddresses(String s) { 8 length = s.length(); 9 int[] ip = new int[4]; 10 restoreIpAddresses(s,0,ip,0); 11 return result; 12 } 13 private void restoreIpAddresses(String s, int si, int[] ip, int pi) { 14 int sl = length - si , pl = 3 - pi , i = -1; 15 String pfx = null; 16 while (si< length){ 17 int num = s.charAt(si++) - ‘1‘ + 1; 18 if (i==0) break; 19 i = i == -1 ? num : i * 10 + num; 20 sl--; 21 if (i>255) break; 22 if (sl < pl || sl > pl * 3) continue; 23 if (pi==3){ 24 if (pfx==null){ 25 StringBuilder pfxBuilder = new StringBuilder(); 26 for (int j = 0; j < ip.length-1; j++) pfxBuilder.append(ip[j]).append(‘.‘); 27 pfx = pfxBuilder.toString(); 28 } 29 result.add(pfx + i); 30 } 31 ip[pi] = i; 32 restoreIpAddresses(s,si,ip,pi+1); 33 } 34 } 35 } 36
以上是关于Leetcode 93.复制IP地址的主要内容,如果未能解决你的问题,请参考以下文章
[JavaScript 刷题] 搜索 - 复原 IP 地址, leetcode 93
精选力扣500题 第59题 LeetCode 93. 复原 IP 地址c++/java详细题解