当前位置: 首页 > news >正文

C++ | Leetcode C++题解之第468题验证IP地址

题目:

题解:

class Solution {
public:string validIPAddress(string queryIP) {if (queryIP.find('.') != string::npos) {// IPv4int last = -1;for (int i = 0; i < 4; ++i) {int cur = (i == 3 ? queryIP.size() : queryIP.find('.', last + 1));if (cur == string::npos) {return "Neither";}if (cur - last - 1 < 1 || cur - last - 1 > 3) {return "Neither";}int addr = 0;for (int j = last + 1; j < cur; ++j) {if (!isdigit(queryIP[j])) {return "Neither";}addr = addr * 10 + (queryIP[j] - '0');}if (addr > 255) {return "Neither";}if (addr > 0 && queryIP[last + 1] == '0') {return "Neither";}if (addr == 0 && cur - last - 1 > 1) {return "Neither";}last = cur;}return "IPv4";}else {// IPv6int last = -1;for (int i = 0; i < 8; ++i) {int cur = (i == 7 ? queryIP.size() : queryIP.find(':', last + 1));if (cur == string::npos) {return "Neither";}if (cur - last - 1 < 1 || cur - last - 1 > 4) {return "Neither";}for (int j = last + 1; j < cur; ++j) {if (!isdigit(queryIP[j]) && !('a' <= tolower(queryIP[j]) && tolower(queryIP[j]) <= 'f')) {return "Neither";}}last = cur;}return "IPv6";}}
};
http://www.lryc.cn/news/458353.html

相关文章:

  • 每日学习一个数据结构-图
  • kali(专业的渗透测试虚拟机)|kali下载链接地址 |kali安装 |kali部署指南
  • 中国地级市生态韧性数据及城市生态韧性数据(2000-2022年)
  • 应对网络安全挑战:App等保测评的重要性与策略
  • vue后台管理系统从0到1搭建(4)各组件的搭建
  • LabVIEW开关磁阻电机特性测量系统
  • 在当前网络环境中查看所有IPv4与Mac地址的方法
  • CSS @规则(At-rules)系列详解___@charset规则使用方法
  • 黑马程序员C++核心编程学习笔记
  • 六自由度平台
  • 【Node.js 下载及npm安装配置】亲测可用
  • Qt C++设计模式->访问者模式
  • 手机在网状态的详细应用场景有哪些?
  • Linux的kafka安装部署
  • docker部署虚拟机
  • 如何用ChatGPT 8小时写出一篇完整论文(附完整提示词)
  • AWS MySQL 升级(三)—— TAZ - 近0停机的小版本升级方案
  • Redis的应用以及Redis工具类的封装
  • E系列I/O模块在锂电装备制造系统的应用
  • ElasticsearchClient入门指南
  • 软考中级笔记
  • 学习python自动化——pytest单元测试框架
  • 定位、地图建立及管理合集
  • uniAPP是否可以做php语言书写后端的前端开发?
  • 柒拾伍- AI内容农场生产文章自动发布至公众号 (一)
  • java.util.function Function<T, R>
  • Allegro在PCB上开槽的三种方法操作指导
  • Docker:快速部署
  • 如何指定this的值
  • 自动化分析背后,一站式数据分析平台!