博客
关于我
微软高频面试模拟题: 验证合法的ipv4地址
阅读量:225 次
发布时间:2019-03-01

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

- 给定一个字符串,判断是否是有效的IP地址(提示,有效的IP地址格式是xxx.xxx.xxx.xxx, xxx在0-255之间)(输入不保证都是这种格式,要自己判断,同时001这种是否有效要问面试官)

去除开头的空格

输入:IP = "172.16.254.1"输出:"IPv4"解释:有效的 IPv4 地址,返回 "IPv4"

首先想最直接的,允许使用split函数的思路:

思路: 首先一定要有三个点,如果没有三个点,一定是不合法的。然后就可以用split,将每一部分单独拆分出来,变成四部分的字符串数组。

如果其中字符串的长度大于3或者为0,说明一定不合法。按照规定如果第一位是0,并且长度大于1,并且每个字符串只能是数字,而且值不超过255

def validIPv4(self, IP: str) -> bool:        if IP.count('.')!=3:            return False        nums = IP.split('.')        for x in nums:            if len(x)==0 or len(x)>3:                return False            if x[0]=='0' and len(x)>1 or not x.isdigit() or int(x)>255:                return False        return True

 

纯C字符串解析:

bool judgeIPV4(char* s) {    if (!s) return false;    int digit = -1;    count = 0;    while (*s != '\0') {        if (*s >= '0' && *s <= '9' && digit == -1) {            digit = 0;        }        if (*s >= '0' && *s <= '9' && digit != -1) {            int temp = *s - '0';            digit = digit * 10 + temp;            if (digit > 255) {                return false;            }        }         else if(digit == '.') {            if (digit < 0) {                return false;            }            count += 1;            if (count > 3) return false;            digit = -1;        } else {            return false;        }        s++;    }    if (count != 3 || digit < 0) return false;    return true;}

 

 

 

 

 

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

你可能感兴趣的文章
Mysql中索引的最左前缀原则图文剖析(全)
查看>>
MySql中给视图添加注释怎么添加_默认不支持_可以这样取巧---MySql工作笔记002
查看>>
Mysql中获取所有表名以及表名带时间字符串使用BetweenAnd筛选区间范围
查看>>
Mysql中视图的使用以及常见运算符的使用示例和优先级
查看>>
Mysql中触发器的使用示例
查看>>
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>
mysql中间件
查看>>
MYSQL中频繁的乱码问题终极解决
查看>>
MySQL为Null会导致5个问题,个个致命!
查看>>
MySQL为什么不建议使用delete删除数据?
查看>>
MySQL主从、环境搭建、主从配制
查看>>
Mysql主从不同步
查看>>
mysql主从同步及清除信息
查看>>
MySQL主从同步相关-主从多久的延迟?
查看>>
mysql主从同步配置方法和原理
查看>>
mysql主从复制 master和slave配置的参数大全
查看>>
MySQL主从复制几个重要的启动选项
查看>>
MySQL主从复制及排错
查看>>
mysql主从复制及故障修复
查看>>