题目
判断输入的字符串是不是一个有效的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
练习阶段: 中级
代码
#include <iostream>
#include <cstring>
using namespace std;
bool isIPAddressValid(const char* pszIPAddr)
{
if(pszIPAddr == NULL)
{
return false;
}
int size = strlen(pszIPAddr);
int start = 0;
while(pszIPAddr[start] == ' ')
{
++start;
}
int end = size - 1;
while(pszIPAddr[end] == ' ')
{
--end;
}
int 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';
}
else 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(num > 255 || num < 0)
{
return false;
}
if(num != 0 && pszIPAddr[first] == '0')
{
return false;
}
first = i+1;
num = 0;
}
else
{
return false;
}
}
if(pointCount != 3)
{
return false;
}
return true;
}
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
华为机试一霸教你过华为机试演讲稿..pdf
华为OD机试(..75.rar
华为机试真题(非牛客网试练题)OD考试真题,不定期更新,文档含代码解答
华为机试一霸教你过华为机试.doc
华为机试一霸教你过华为机试。大菊厂招聘有三关,心理测试,机试,面试。
华为机试oj练习题2014
。。。
。。。
华为机试算法题总结 经验分享
华为OD系列--华为OD机试
华为机试一霸教你过华为机试e-18页.pdf
华为机试题目100题练习题
本人在准备2014年华为机试的时候,进行整理的,代码全部运行成功。如有错误,请大家见谅。
华为机试成功归来,与小伙伴们分享下经验
1.(判断题)DRAM上电时存储单元的内容是全0,而Flash上电时存储单元的内容是全1。(4分) A.正确 ...5.(判断题)1的8位二进制补码是0000_0001,-1的8位二进制补码是 1111_1111。(4分) A.正确 B.错误
华为机试.md
大师兄教你如何过华为机试
贰壹贰叁零华为OD机试.pptx 华为OD机试.pptx 华为OD机试.pptx
里面有几十道华为历届考过的机试题,可供大家研究和参考,主要是里面的思想,只要理解透了里面的思想,非常有助于机试。
华为机试.py