题解 | #合法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")

全部评论

相关推荐

AFBUFYGRFHJLP:直接去美帝试试看全奖phd吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务