题解 | #合法IP#

合法IP

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

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int st2i(string s){
    int x=0;
    for(char ch:s){
        x=10*x+ch-'0';
    }
    return x;
}

int main() {
    string s;
    vector<string> table;
    cin >> s;
    int j=0;
    for(int i=0;i<=s.size();++i){
        if(s[i]=='.'||i==s.size()){
            if(j<i){
                table.push_back(s.substr(j,i-j));
                j=i+1;
            }
        }
    }
    if(table.size()!=4){
        cout << "NO";
        return 0;
    }
    for(int i=0;i<table.size();++i){
        if(table[i][0]=='0'&&table[i].size()>1){
            cout << "NO";
            return 0;
        }
        int x=st2i(table[i]);
        if(!(x<=255&&x>=0)){
            cout << "NO";
            return 0;
        }
    }
    cout << "YES";
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务