2019独角兽企业重金招聘Python工程师标准>>>

问题描述

给一个由数字组成的字符串。求出其可能恢复为的所有IP地址。

那么首先我们需要了解ip地址的及其格式。

IP地址及其格式

IP地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是IP Address的缩写。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

解决方案

我们如果使用java解决这个问题,可以这样,

import java.util.ArrayList;
public class Solution {/*** @param s the IP string* @return All possible valid IP addresses*/public static boolean isValid(String s){if (s.charAt(0)=='0') return s.equals("0");int num = Integer.parseInt(s);return num<=255 && num>0;}public static ArrayList<String> restoreIpAddresses(String s) {// Write your code hereArrayList<String> res = new ArrayList<String>();if (s.length()<4||s.length()>12) return res;dfs(s,"",res,0);return res;}public static void dfs(String s, String tmp, ArrayList<String> res, int count){if (count == 3 && isValid(s)) {res.add(tmp + s);return;}for(int i=1; i<4 && i<s.length(); i++){String substr = s.substring(0,i);if (isValid(substr)){dfs(s.substring(i), tmp + substr + '.', res, count+1);}}}}

测试代码如下,

public class Test {public static void main(String [] args){       System.out.println(Solution.restoreIpAddresses("25525511135"));}
}

测试结果如下,

[255.255.11.135, 255.255.111.35]

符合我们的预期目标。

语法细节

其中代码中的语法细节之一是static method 的调用。当我们在一个类中调用另外一个类的方法时,需要注意有两种可能,

class A{public void methodA(){new B().methodB();//orB.methodB1();}}class B{//instance methodpublic void methodB(){}//static methodpublic static  void methodB1(){}}

转载于:https://my.oschina.net/donngchao/blog/551736

字符串转换为合法IP地址相关推荐

  1. python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串是否是合法I ...

  2. aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址 ...

  3. python判断字符串合法,详解Python判定IP地址合法性的三种方法 python中判断一个字符串是否是IP地址...

    html 中 鼠标放在标签上会显示小手状,其它标签在其他标签上,美工给加了一些样式,鼠标放上去也显示小手状.有哪位大手状样式 有什么不懂的前端问题可以去菜鸟驿站.全都是泡沫,只一刹的花火,所谓的友情, ...

  4. 数字字符串转化成 IP 地址

    数字字符串转化成 IP 地址 1.参考资料 https://www.nowcoder.com/practice/ce73540d47374dbe85b3125f57727e1e 2.题目要求 题目描述 ...

  5. 【C语言】从字符串中提取IP地址最简洁的方法

    首先先看一下判断字符串是否为IP地址(IPv4地址是否合法)的方法: ([C语言]判断字符串是否为IP地址(IPv4地址是否合法)) #include <stdio.h> #include ...

  6. 字符串中查找IP地址的正则表达式

    字符串中查找IP地址的正则表达式: IP地址:(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[0-4]\d|25[0-5]|[01]\d\d|\d\d|\d)\.(2[ ...

  7. 算法题解——将字符串转化为ip地址

    算法题解--将字符串转化为ip地址 题目描述 现在有一个只包含数字的字符串,将该字符串转化成IP地址的形式,返回所有可能的情况. 例如: 给出的字符串为"25525511135", ...

  8. python提取一段字符串中的ip地址

    代码如下: #!/usr/bin/env python3 # -*- coding:utf-8 -*-import re import osip_str = os.popen('cat /root/b ...

  9. 字符串双引号表示c语言,c语言中单引号和双引号的区别(顺利解决从字符串中提取IP地址的困惑)...

    c语言中的单引号和双引号可是有很大区别的,使用之前一定要了解他们之间到底有什么不同,下面小编就给大家详细的介绍一下吧,对此还不是很了解的朋友可以过来参考下 问题:从c++文件中将std:string转 ...

  10. c语言整数转ip地址字符串,C/C++ ip地址与int类型的转换实例详解

    C/C++ ip地址与int类型的转换实例详解 前言 最近看道一个面试题目,大体意思就是将ip地址,例如"192.168.1.116"转换成int类型,同时还能在转换回去 思路 i ...

最新文章

  1. Pandownload惊喜复活!下载速度惊人!
  2. spring-amqp生产者手动ACK
  3. 【Android Gradle 插件】Module 目录下 build.gradle 配置文件 ( android 闭包块配置 | AppExtension 扩展类型参考文档 )
  4. Python基础教程第1章:基础知识---学习记录
  5. 发起一个ajax请求,发送ajax请求
  6. mysql cmd ping_cmd命令行的ping用法
  7. 计算机感染病毒后 一定不能清除的措施是,计算机感染病毒后,一定不能清除的措施是()。...
  8. linux:rsync命令
  9. html编辑四则运算,简单的web四则运算计算器
  10. UVA 11090 Going in Cycle!! 二分答案 + bellman-ford
  11. 分享一个windows下检测硬件信息的bat脚本
  12. 用鸿蒙取名好吗,“鸿蒙”两个字,还是古人写得好看…
  13. 对AngularJS的编译和链接过程讲解一步到位的文章
  14. python怎么命名未知数_怎样用Python计算含有未知数的方程式-百度经验
  15. Linux 命令 su 和 sudo 的区别?
  16. 【网络设备】单臂路由和STP配置及理论
  17. c语言 extern的作用
  18. 简要介绍各种键盘布局
  19. 前端优化之减少HTTP请求
  20. 半次元收藏夹爬虫(残疾版,不喜勿喷)

热门文章

  1. 在pcDuino上安装OpenJFX
  2. 进入心理死角--程序员不是技术,是心理 +我是菜鸟。
  3. Linux音频驱动-OSS和ALSA声音系统简介及其比较
  4. java开发web应用开发,Java Web应用开发概述
  5. linux内核分析及应用 -- Linux 网络层数据流分析(上)
  6. linux内核分析及应用 -- 文件系统
  7. Ceph 撸源码系列(一):Ceph开源项目源代码的关键目录介绍
  8. Ceph浅析”系列之四——Ceph的结构
  9. CSipsimple最新版本编译
  10. pandas dataframe统计填充空值大全