题解 | #合法IP#

合法IP

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

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

bool isIp(string ip) {
    int left = 0, right = 0;
    int n = ip.size();
    vector<int> nums(4);
    while (right < n) {
        for (int i = 0; i < 4; ++i) {
            left = right;
            if (!isdigit(ip[right])) return false;
            while (isdigit(ip[right])) right++;
            string temp = ip.substr(left, right - left);
            if (temp[0] == '0' && temp.size() > 1) return false;
            nums[i] = stoi(temp);
            if (nums[i] < 0 || nums[i] > 255) return false;
            if (i < 3) {
                if (right < n && ip[right++] != '.') return false;
            }
        }
    }
    if (right != n) return false;
    return true;
}

int main() {
    string ip;
    while (cin >> ip) {
        if (isIp(ip)) {
            cout << "YES" << endl;
        } else {
            cout << "NO" << endl;
        }
    }
}

全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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