Java实现复原IP地址的方法

 更新时间:2020年02月18日 11:17:05   作者:南 墙  
这篇文章主要介绍了Java实现复原IP地址的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

示例:

输入: “25525511135”
输出: [“255.255.11.135”, “255.255.111.35”]

PS:

跪了,得LeetCode者得天下,上次我学的位运算符,这次学的ip地址

class Solution {
  private List<String> res = new ArrayList<>();
  public List<String> restoreIpAddresses(String s) {
    if (s.length() < 4) //非法输入
      return res;
    backtrack(s, 0, new StringBuilder(), 0);
    return res;
  }
  private void backtrack(String s, int start, StringBuilder sb, int pointNumOfSb) {
    if (pointNumOfSb > 4) //大于三个点,则剪枝,这里大于4是因为最后一次还会加一
      return;
    if (start == s.length() && pointNumOfSb == 4) {  //pointNumOfSb==4,则是一个合法的IP
      res.add(sb.toString().substring(1));  //substring(1)是因为每次append(".xxx"),第零个位置是"."
      return ;
    }
    for (int i = start; i < s.length() && i - start < 3; i++) { //i-start < 3,如果大于三位数则返回
      String x = s.substring(start, i + 1);
      if (x.charAt(0) == '0' && x.length() > 1) //如果是0xx这种则返回
        return ;
      if (Integer.parseInt(x) <= 255) {
        sb.append("." + x);
        backtrack(s, i + 1, sb, pointNumOfSb + 1);
        sb.delete(sb.lastIndexOf("."), sb.length());
      }
    }
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring MVC学习教程之视图深入解析

    Spring MVC学习教程之视图深入解析

    这篇文章主要给大家介绍了关于Spring MVC学习教程之视图解析的相关资料,文中通过示例代码介绍的非常详细,对大家学习或使用spring mvc具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-11-11
  • Java生成二维码的实例代码

    Java生成二维码的实例代码

    这篇文章主要介绍了Java生成二维码的实例代码,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09
  • 解决Java & Idea启动tomcat的中文乱码问题

    解决Java & Idea启动tomcat的中文乱码问题

    这篇文章主要介绍了Java & Idea启动tomcat的中文乱码问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • SpringBoot SSE服务端主动推送事件的实现

    SpringBoot SSE服务端主动推送事件的实现

    本文主要介绍了SpringBoot SSE服务端主动推送事件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java的数据类型和参数传递(详解)

    Java的数据类型和参数传递(详解)

    下面小编就为大家带来一篇Java的数据类型和参数传递(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 浅析Java BigDecimal为什么可以不丢失精度

    浅析Java BigDecimal为什么可以不丢失精度

    在金融领域,为了保证数据的精度,往往会使用BigDecimal,所以这篇文章主要来和大家探讨下为什么BigDecimal可以保证精度不丢失,感兴趣的可以了解下
    2024-03-03
  • 详解Java的Hibernate框架中的注解与缓存

    详解Java的Hibernate框架中的注解与缓存

    这篇文章主要介绍了详解Java的Hibernate框架中的注解与缓存,Hibernate是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • maven profile实现多环境配置的示例

    maven profile实现多环境配置的示例

    这篇文章主要介绍了maven profile实现多环境配置的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 通过实例解析Java不可变对象原理

    通过实例解析Java不可变对象原理

    这篇文章主要介绍了通过实例解析Java不可变对象原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java 断言 assert的用法详解

    Java 断言 assert的用法详解

    Java assert断言机制是Java5中推出的新特性,它主要用于在程序运行时检查状态或假设的正确性,本篇文章将全面详细地讲解Java assert断言机制,包括断言概述、语法规则、工作原理、使用场景、注意事项以及示例代码等方面,需要的朋友可以参考下
    2023-05-05

最新评论