日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

[华为机试练习题]5.IP地址推断有效性

發布時間:2024/4/14 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [华为机试练习题]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地址推断有效性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。