[华为机试练习题]5.IP地址推断有效性
题目
推断输入的字符串是不是一个有效的IP地址
具体描写叙述:
请实现例如以下接口
boolisIPAddressValid(constchar* pszIPAddr)
输入:pszIPAddr 字符串
输出:true 有效的IP地址,false,无效的IP地址
约束
输入IP为XXX.XXX.XXX.XXX格式
字符串两端含有空格觉得是合法IP
字符串中间含有空格觉得是不合法IP
相似于 01.1.1.1, 1.02.3.4 IP子段以0开头为不合法IP
子段为单个0 觉得是合法IP,0.0.0.0也算合法IP
知识点: 字符串
题目来源: 111
练习阶段: 中级
代码
/*---------------------------------------
* 日期:2015-06-25
* 作者:SJF0115
* 题目:IP地址推断有效性
* 来源:华为上机
-----------------------------------------*/
#include <iostream>
#include <cstring>
using namespace std;bool isIPAddressValid(const char* pszIPAddr)
{if(pszIPAddr == NULL){return false;}//ifint size = strlen(pszIPAddr);// 去除前导0int start = 0;while(pszIPAddr[start] == ' '){++start;}//while// 去除后导0int end = size - 1;while(pszIPAddr[end] == ' '){--end;}//whileint num = 0;int pointCount = 0;int first = start;for(int i = start;i <= end+1;++i){if(pszIPAddr[i] >= '0' && pszIPAddr[i] <= '9'){num = num * 10 + pszIPAddr[i] - '0';}//ifelse if(pszIPAddr[i] == '.' || i == end + 1){if(i == start || (pszIPAddr[i-1] < '0' || pszIPAddr[i-1] > '9')){return false;}// 验证.个数if(pszIPAddr[i] == '.'){++pointCount;if(pointCount > 3){return false;}//if}//if// 验证数据if(num > 255 || num < 0){return false;}//if// 以0开头且不为0 比如:023if(num != 0 && pszIPAddr[first] == '0'){return false;}//iffirst = i+1;num = 0;}//elseelse{return false;}//else}//forif(pointCount != 3){return false;}return true;
}
[华为机试练习题]5.IP地址推断有效性相关推荐
- [华为机试练习题]55.最大公约数 amp; 多个数的最大公约数
题目 描写叙述: 输入2个数字,最后输出2个数字的最大公约数 题目类别: 位运算 难度: 0基础 执行时间限制: 无限制 内存限制: 无限制 阶段: 入职前练习 输入: 2个整数 输出: 输出数字1和 ...
- [华为机试练习题]60.水仙花数
题目 描述: 水仙花数又称阿姆斯特朗数. 水仙花数是指一个n 位数( n≥3 ),它的每个位上的数字的n 次幂之和等于它本身.(例如:1^3 + 5^3 + 3^3 = 153) 求输入的数字是否为水 ...
- [华为机试练习题]51.数列求和
题目 描写叙述: 题目描写叙述 编敲代码,输入一个正整数n.求下列算式的值.要求定义和调用函数fact(k)计算k的阶乘. 1+1/2!+ .... +1/n! 计算结果保存在double类型变量中. ...
- [华为机试练习题]37.合唱队
题目 描述: 计算最少出列多少位同学,使得剩下的同学排成合唱队形说明:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学 ...
- (记录)华为机试练习题13—句子逆序
华为机试练习题13-句子逆序 题目描述 输入描述: 输出描述 例如: 代码(Java) 题目描述 将一个英文语句以单词为单位逆序排放.例如"I am a boy",逆序排放后为&q ...
- [华为机试练习题]44.24点游戏算法
题目 注意: 6 + 2 * 4 + 10 = 24 不是一个数字一个数字的计算 代码 /*--------------------------------------- * 日期:2015-07-0 ...
- [华为机试练习题]28.报数
题目 描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的那位是原来第几号. 题目类别: 数组,指针 难度: 初级 运行时间限制: 10Sec 内存限 ...
- 牛客网-华为机试练习题 16 购物单
描述 王强今天很开心,公司发给N元的年终奖.王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子: 主件 附件 电脑 打印机,扫描仪 书柜 ...
- HJ77 火车进站 —— 华为机试练习题
一.题目 描述 给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号,火车站只有一个方向进出,同时停靠在火车站的列车中,只有后进站的 ...
最新文章
- 数据库表(字段类型、约束、截断表、修改表字段、重命名表)
- MySQL学习随笔记录
- java.lang.IllegalArgumentException: Path index does not start with a / character
- 基于cobbler实现自动安装系统
- characteriscation in English debate
- 「Python」ubuntu使用make命令安装python(带详细解释和防坑指南)
- Java集合框架-重构设计
- python列表元素都加倍_关于python列表增加元素的三种操作方法
- 飞鸽传书:摆一摆自己的C++程序设计入行历程
- overflow encountered in ubyte_scalars像素加减运算溢出异常
- 苹果手机上网速度慢_手机信号明明满格却上不去网?4招帮你搞定它!
- fataexception matlab,人工势场法路径规划(附MAtlab程序)
- 13、图灵机器人能力
- 5-7 六度空间 (30分)
- OSChina 周五乱弹 —— 闹钟一响就睡觉
- Android之头像图片变圆形
- php mpdf导航栏信息,php – 我想使用mpdf在pdf中设置页眉和页脚
- 霍兰德air适合学计算机吗,霍兰德职业兴趣测验(含职业代码)
- Office 连供打印机无法进纸怎么办 卡纸,塞纸怎么办
- 我奋斗了18年才和你坐在一起喝咖啡(转)
热门文章
- android studio 设置控制台字体大小
- Tomact和MySql搭建android简单服务器
- ElasticSearch,docker 安装ElasticSearch,Springboot 使用 ElasticSearch JavaAPI
- 探讨8.0版本下后台service存活机制及保活
- (2016北京集训十二)【xsy1542】疯狂求导
- pyhton3 os模块
- 更方便的函数回调——Lambda
- 康托尔定理是如何证明的?
- [JDK]找不到或无法加载主类 java
- Hibernate的几个关键类的详解及Hibernate的运行过程