打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
华为机试HJ90:合法IP

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

题目描述:

现在IPV4下用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此不需要用正号出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。

现在需要你用程序来判断IP是否合法。

注意本题有多组样例输入。

输入描述:

输入一个ip地址,保证是xx.xx.xx.xx的形式(xx为整数)

输出描述:

返回判断的结果YES or NO

示例:

输入:

10.138.15.1
255.0.0.255
255.255.255.1000

输出:

YES
YES
NO

解题思路:

这题是字符串分析题。截取字符串IP的四个数字,并判断其是否符合数值合理区间即可。

测试代码:

#include <iostream>
#include <string>
#include <bitset>
#include <vector>

using namespace std;

string analyze(string str)
{
    string temp;
    int k=0;
    for(int i=0;i<str.size();++i)
    {
        if(str[i]=='.')
        {
            temp=str.substr(k,i-k);
            k=i+1;
            int t=stoi(temp);
            if(t<0||t>255)
                return "NO";
        }
    }
    temp=str.substr(k,str.size()-k);
    int t=stoi(temp);
    if(t<0||t>255)
        return "NO";
    return "YES";
}

int main()
{
    string str;
    while(getline(cin,str))
    {
        cout<<analyze(str)<<endl;
    }
    return 0;
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
读《资治通鉴》后感:人活一世,敌人永远都存在
印度人把上海叫东方小孟买,孟买到底有多厉害?放到中国啥水平?
摄影:国树银杏的丰饶
技术变革如何影响大国兴衰? | 国政学人
和珅被赐死前,给子孙留了两条锦囊妙计,200多年后发现他真高明
纪录片全十集,超长完整版《希特勒的朋友圈》,收藏后观看,以后再找
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服