题解 | #合法IP#

合法IP

https://www.nowcoder.com/practice/995b8a548827494699dc38c3e2a54ee9

#include <iostream>
using namespace std;
#include<sstream>
#include<vector>
bool isValid(string ip){
    stringstream ss(ip);
    string segment;
    vector<string> parts;
    while(getline(ss,segment,'.')){
        if(segment.empty()) return false; 
        parts.push_back(segment);
    }
    if(parts.size()!=4) return false; //4部分
    for(string part :parts){
        if(part=="0") return true; //单独一个0的情况是合法的
        if(part[0]=='0') return false; //前导零的情况
        if(stoi(part)<0||stoi(part)>255) return false; //范围
        for(char c:part){ //非数字情况
            if(!isdigit(c)) return false;
        }
    }
    return true;
}
int main() {
    string ip;
    while (getline(cin,ip)) {
        if(isValid(ip)){
            cout<<"YES"<<endl;
        }else{
            cout<<"NO"<<endl;
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务