博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Leetcode] Restore IP Address 修复IP地址
阅读量:6001 次
发布时间:2019-06-20

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

Restore IP Address

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)

四分法

复杂度

时间 O(N^2) 空间 O(1)

思路

用三个点将字符串分成四段,验证每一段是否是有效的。我们只要控制这三个分割点就行了,注意约束条件有两个,一个是一段字符串不超过3个字母,另一个是控制好每段字符串最远结束的位置,比如第一个字符串最多延伸到倒数第4个字母。

注意

使用Integer.valueOf()时要确保所得到数不会超界。

代码

public class Solution {    public List
restoreIpAddresses(String s) { List
res = new LinkedList
(); int len = s.length(); // 第一个分割点 for(int i = 1; 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), s2 = s.substring(i, j), s3 = s.substring(j, k), s4 = s.substring(k, s.length()); if(isValid(s1)&&isValid(s2)&&isValid(s3)&&isValid(s4)) res.add(s1+"."+s2+"."+s3+"."+s4); } } } return res; } private boolean isValid(String sub){ return sub.length()<=3 && ((sub.charAt(0) != '0' && Integer.valueOf(sub) <=255) || sub.equals("0")); }}

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

你可能感兴趣的文章
mysql字符集
查看>>
DP_1d1d诗人小G
查看>>
非、半、结构化数据学习【转载】
查看>>
SpringMVC之单/多文件上传
查看>>
avalon加载一闪而过现象
查看>>
Castle IOC概念理解
查看>>
如何配置Log4Net使用Oracle数据库记录日志
查看>>
一道在知乎很火的 Java 题——如何输出 ab【转】
查看>>
Python学习第二天-编写购物车
查看>>
AD域组策略-只显示指定的控制面板选项配置方法
查看>>
BigTable——针对结构型数据的一种分布式存储系统
查看>>
ip通信基础第二周回顾
查看>>
唯美MACD-完全版
查看>>
Canvas中 drawImage绘制图片不显示
查看>>
MyEclipse新建Server项目
查看>>
茵茵的第一课
查看>>
Linux实战教学笔记53:开源虚拟化KVM(一)搭建部署与概述
查看>>
PAT 1007
查看>>
USACO习题:Friday the Thirteenth
查看>>
C++ VS2012 内存泄露检测
查看>>