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());
      }
    }
  }
}

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

相关文章

  • SpringMVC之异常处理解读

    SpringMVC之异常处理解读

    这篇文章主要介绍了SpringMVC之异常处理解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java 增强型for循环语法详解

    java 增强型for循环语法详解

    增强型 for 循环(也称为 “for-each” 循环)是 Java 从 JDK 5 开始引入的一种便捷循环语法,旨在简化对数组或集合类的迭代操作,这篇文章主要介绍了java 增强型for循环 详解,需要的朋友可以参考下
    2025-04-04
  • Java后端返回PDF预览给前端的实现

    Java后端返回PDF预览给前端的实现

    前端要预览服务器PDF 可直接将要blob流返回给前端,即可用浏览器自带pdf预览功能打开,本文就来介绍一下如何实现,感兴趣的可以了解一下
    2023-09-09
  • SpringBoot整合swagger的操作指南

    SpringBoot整合swagger的操作指南

    Swagger 是一个开源的框架,用于设计、构建、文档化和使用 RESTful 风格的 Web 服务,Spring Boot 是一个用于构建独立的、基于生产级别的 Spring 应用程序的框架,本文讲给大家介绍一下SpringBoot整合swagger的操作指南,需要的朋友可以参考下
    2023-09-09
  • 图解如何在Spring Boot中使用JSP页面

    图解如何在Spring Boot中使用JSP页面

    这篇文章主要介绍了图解如何在Spring Boot中使用JSP页面,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java二维数组与动态数组ArrayList类详解

    Java二维数组与动态数组ArrayList类详解

    这篇文章主要给大家介绍了关于Java二维数组与动态数组ArrayList类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 从0构建Oauth2Server服务之Refreshing-access-tokens

    从0构建Oauth2Server服务之Refreshing-access-tokens

    这篇文章主要为大家介绍了从0构建Oauth2Server服务之Refreshing-access-tokens刷新令牌示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Java详细讲解分析双指针法的使用

    Java详细讲解分析双指针法的使用

    严格的来说,双指针只能说是是算法中的一种技巧。双指针指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的
    2022-04-04
  • SpringMvc微信支付回调示例代码

    SpringMvc微信支付回调示例代码

    微信一直是一个比较热门的词汇,今天这篇文章主要介绍的是SpringMvc微信支付回调的示例代码,对大家开发微信支付具有一定的参考借鉴价值,下面来一起看看吧。
    2016-09-09
  • SpringBoot整合SSO(single sign on)单点登录

    SpringBoot整合SSO(single sign on)单点登录

    这篇文章主要介绍了SpringBoot整合SSO(single sign on)单点登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论