博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
93. Restore IP Addresses
阅读量:6916 次
发布时间:2019-06-27

本文共 1634 字,大约阅读时间需要 5 分钟。

Given a string containing only digits, restore it by returning all possible valid IP address combinations.

Example:

Input: "25525511135"Output: ["255.255.11.135", "255.255.111.35"]

难度:medium

题目:给定一字符串仅包含数字,恢复该字符串为所有可能合法的IP地址组合。

思路:递归

Runtime: 2 ms, faster than 91.11% of Java online submissions for Restore IP Addresses.

Memory Usage: 34.8 MB, less than 0.90% of Java online submissions for Restore IP Addresses.

class Solution {    public List
restoreIpAddresses(String s) { List
result = new ArrayList(); if (null == s || s.length() < 4 || s.length() > 12) { return result; } restoreIpAddresses(s, 0, 0, "", result); return result; } private void restoreIpAddresses(String s, int i, int cnt, String str, List
result) { int sLength = s.length(); if (i >= sLength && cnt >= 4) { result.add(str.substring(0, str.length() - 1)); return; } int i1 = (i + 1) <= sLength ? Integer.parseInt(s.substring(i, i + 1)) : -1; if (i1 >= 0 && cnt < 4) { restoreIpAddresses(s, i + 1, cnt + 1, str + i1 + ".", result); } int i2 = (i + 2) <= sLength ? Integer.parseInt(s.substring(i, i + 2)) : -1; if (i2 >= 10 && i2 <= 99 && cnt < 4) { restoreIpAddresses(s, i + 2, cnt + 1, str + i2 + ".", result); } int i3 = (i + 3) <= sLength ? Integer.parseInt(s.substring(i, i + 3)) : -1; if (i3 >= 100 && i3 <= 255 && cnt < 4) { restoreIpAddresses(s, i + 3, cnt + 1, str + i3 + ".", result); } }}

转载地址:http://ooicl.baihongyu.com/

你可能感兴趣的文章
ios应用内下载并安装另一个应用
查看>>
SQL GROUP BY 语句
查看>>
简单介绍一些HTML代码(字幕、音频和视频)
查看>>
Java——复选框:JCheckBox
查看>>
用android模拟器Genymotion定位元素
查看>>
iOS学习:UILabel和sizeWithFont方法
查看>>
java-学习-自我规划
查看>>
在Ubuntu下搭建ASP.NET 5开发环境
查看>>
互联网时代下,数据产业正成为一种新的生意
查看>>
咸阳供电公司助力“智慧城市”建设
查看>>
OpenDaylight的Helium(氦)版本安装
查看>>
决心书
查看>>
手抄代码1-24
查看>>
深入了解SCN
查看>>
Linux之Web服务(2)Httpd服务配置之二
查看>>
Nginx的安装与负载均衡配置
查看>>
wglCreateContext
查看>>
cacti 使用script query 详解 - 例子 监控mysql中数据库占用磁盘量【整理后】
查看>>
jenkins 内存泄露处理方法
查看>>
我的友情链接
查看>>