精华内容
下载资源
问答
  • IP地址判断有效性

    千次阅读 2016-04-06 12:34:02
    IP地址判断有效性标签(空格分隔): OJ_算法1.题目 判断输入的字符串是不是一个有效的IP地址 详细描述: 请实现如下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效...

    IP地址判断有效性

    标签(空格分隔): OJ_算法


    1.题目

    • 判断输入的字符串是不是一个有效的IP地址
      详细描述:
    • 请实现如下接口
      boolisIPAddressValid(constchar* pszIPAddr)
      输入:pszIPAddr 字符串
      输出:true 有效的IP地址,false,无效的IP地址
    • 约束
      输入IP为XXX.XXX.XXX.XXX格式
      字符串两端含有空格认为是合法IP
      字符串中间含有空格认为是不合法IP
      类似于 01.1.1.1, 1.02.3.4 IP子段以0开头为不合法IP
      子段为单个0 认为是合法IP,0.0.0.0也算合法IP

    2 代码实现

    版本1:

    int ConvertSubIPToInt(const char* sub_ip)
    {
        if (sub_ip == NULL)
            return -1;
        int length = strlen(sub_ip);
        if (length < 1 || length>3)
            return -1;
        int sub_value = 0;
        for (int i = 0; i < length; i++)
        {
            if (sub_ip[i]<'0' || sub_ip[i]>'9')
                return -1;
            sub_value = 10 * sub_value + sub_ip[i] - '0';
        }
        return sub_value;
    }
    bool isIPAddressValid(const char* pszIPAddr)
    {
        // 请在此处实现
        if (pszIPAddr == NULL || *pszIPAddr == '\0')
            return false;
    
        int szIPAddr_length = strlen(pszIPAddr);
    
        int index_start = 0;
        int index_end = szIPAddr_length - 1;
    
        //去除前边的空格
        while (pszIPAddr[index_start] == ' ')
        {
            ++index_start;
        }
        //去除后边空格
        while (pszIPAddr[index_end] == ' ')
        {
            --index_end;
        }
        if (index_end <= index_start)
            return false;
    
        int ip_length = index_end - index_start + 2;
        char *temp_ip=(char*)malloc(ip_length);
        strncpy(temp_ip, pszIPAddr + index_start, ip_length-1);
        temp_ip[ip_length - 1] = '\0';
    
        char* sub_ip = strtok(temp_ip, ".");
        int sub_ip_count = 0;
        int sub_ip_value;
        while (sub_ip != NULL)//ip分段,计数分段ip,并转换为0-255
        {
            sub_ip_count++;
            if (sub_ip_count > 4)
            {
                free(temp_ip);
                return false;
            }
            sub_ip_value= ConvertSubIPToInt(sub_ip);
            if (sub_ip_value < 0 || sub_ip_value > 255)
                {
                    free(temp_ip);
                    return false;
                }
            sub_ip = strtok(NULL, ".");
        }
        free(temp_ip);
        if (sub_ip_count != 4)
            return false;
        else
            return true;
    }

    版本2:

    bool isIPAddressValid(const char* pszIPAddr)
    {
        // 请在此处实现
        if (pszIPAddr == NULL || *pszIPAddr == '\0')
            return false;
    
        size_t szIPAddr_length = strlen(pszIPAddr);
    
        bool isValid = true;
        size_t index_start = 0;
        size_t index_end = szIPAddr_length - 1;
    
        //去除前边的空格
        while (pszIPAddr[index_start] == ' ')
        {
            ++index_start;
        }
        //去除后边空格
        while (pszIPAddr[index_end] == ' ')
        {
            --index_end;
        }
    
        int sub_value = 0;//转换每个子段的值
        int dot_mark_count = 0;//统计字符'.'的个数
    
        size_t sub_fisrt = index_start;//记录每个子段的第一个字符位置
        for (size_t i = index_start; i <= index_end + 1; i++)
        {
            if (pszIPAddr[i] >= '0'&&pszIPAddr[i] <= '9')
            {
                sub_value = 10 * sub_value + pszIPAddr[i] - '0';
            }
            else if (pszIPAddr[i] == '.' || i == index_end + 1)
            {
                if (i == index_start || pszIPAddr[i - 1] < '0' || pszIPAddr[i - 1]>'9')//判断第一位或者.的前后是否有数字
                    return false;
                if (pszIPAddr[i] == '.')//统计点'.'的个数
                {
                    dot_mark_count++;
                    if (dot_mark_count > 3)
                        return false;
                }
    
                if (sub_value < 0 || sub_value>255)
                    return false;
                if (sub_value != 0 && pszIPAddr[sub_fisrt] == '0')
                    return false;
    
                sub_value = 0;//子段识别完毕,重新转换下一子段值
                sub_fisrt = i + 1;
            }
            else
                return false;
        }
        if (dot_mark_count != 3)//统计点'.'的个数
            return false;
    
        return true;
    }

    参见:https://www.zybuluo.com/songpfei/note/335965

    展开全文
  • URL的又有效性判断

    2013-01-09 12:36:53
    URL的又有效性判断
  • C# 源码 判断 身份证号 有效性 包含:长度 校验位 出生日期 省份 等判断算法
  • 主要介绍了判断js验证日期时间有效性的方法,需要的朋友可以参考下
  • C#的那些有效性判断

    2020-12-22 19:43:34
    在开发中合理的对象有效性判断是程序健壮性的重要保障,也有利于提高程序的执行效率。本人简单总结了几个需要判断对象是否为空的例子,分享如下:  一、集合对象中可以包含空对象,遍历集合对象时要同时判断集合中...
  • 判断IP地址有效性

    2012-01-29 16:14:16
    这个代码实现判断ip地址合法的功能,已通过测试。
  • 用VBS脚本判断IP地址有效性
  • 怎样判断KDJ金叉有效性

    千次阅读 2007-01-22 12:42:00
    对KDJ金叉的有效性,我们可采取周K线和日K线的KDJ技术指标相结合进行判断。 条件:当一支股票周KDJ技术指标形成金叉,此时五周均量一定要小于十周均量,而后日KDJ技术指标在五日均量小于十日均量时,也形成金叉,...
    KDJ技术指标在实际操作过程中经常会出现有效金叉和无效金叉。无效金叉是指依据KDJ金叉买入股票后股价却不上涨,反而下跌。对KDJ金叉的有效性,我们可采取周K线和日K线的KDJ技术指标相结合进行判断。
    

      条件:当一支股票周KDJ技术指标形成金叉,此时五周均量一定要小于十周均量,而后日KDJ技术指标在五日均量小于十日均量时,也形成金叉,此时为有效金叉。

      以蓝田股份(600709)为例:2000年6月2日该股周KDJ技术指标形成金叉且五周均量小于十周均量。  

      2000年6月5日该股日KDJ技术指标虽然形成金叉,但由于五日均量大于十日均量,此时的KDJ技术指标形成金叉为无效金叉。  

      2000年6月16日该股日KDJ技术指标再次形成金叉且当日该股五日均量小于十日均量,此时的KDJ技术指标形成金叉为有效金叉 
    展开全文
  • Swift判断API的有效性

    千次阅读 2015-10-16 17:09:51
    原文出自:Swift判断API的有效性前言我们在Swift开发中,为了适配不同的系统版本,我们必须要对API的兼容性做处理。因此这里总结一下在Swift开发中对API有效性的常用判断方式。 说明:本文中的Swift开发语言是基于...

    原文出自:Swift判断API的有效性

    前言

    我们在Swift开发中,为了适配不同的系统版本,我们必须要对API的兼容性做处理。因此这里总结一下在Swift开发中对API有效性的常用判断方式。

    说明:本文中的Swift开发语言是基于Swift2.0语法的,若旧版本不支持,请参考相关文章。

    回顾Objective-C的检查方式

    1、方式一:通过获取iOS版本,然后判断是否是某个版本范围。如:

    if ([UIDevice currentDevice].systemVersion.intValue >= 8) {
      // 调用8.0以后才支持的API
    }

    2、方式二:通过条件编译的方式判断是否是某个系统版本之上。如:

    #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
         // 调用7.0以后才支持的API
    #endif

    3、方式三:通过-respondsToSelector:方法来判断。如:

    if (self respondsToSelector:@selector(testAPI)) {
      // 调用
      [self testAPI];
    }

    是否还有更多方式呢?一时想不出来了,如果还有别的方式,请联系我,谢谢!

    学习Swift的检查方式

    Swift2.0中,我们可以通过#available来判断是否可用。看看其语法如何:

    语法规则:#available(iOS v, OSX v1, ),其中参数不要求全部使用,可以直接使用#available(iOS v, )或者#availabel(OSX, *)

    1、方式一:我们仍然可以使用respondsToSelector方法来判断。如:

    if tableView.respondsToSelector(Selector("reloadData")) {
       print("support reloadData")
    }

    注意:Selector类型与Objective-C中的不同,不会自动提示。

    此处省略10000字…请移步原文阅读全文

    关注我

    公众号搜索「iOS开发技术分享」快速关注微信号:iOSDevShares

    QQ群:324400294

    image

    展开全文
  • 使用JS判断日期的有效性

    千次阅读 2019-12-05 22:54:43
    将年月日分别取出,根据是否闰年和每月的日期进行判断。 function judgeDate(date){ const rmons = [31,29,31,30,31,30,31,31,30,31,30,31], pmons = [31,28,31,30,31,30,31,31,30,31,30,31]; v...

    为了方便,这里使用的是 yyyy/MM/dd 格式的日期。

    一般策略:

    将年月日分别取出,根据是否闰年和每月的日期进行判断。

    function judgeDate(date){
    	const rmons = [31,29,31,30,31,30,31,31,30,31,30,31],
    		  pmons = [31,28,31,30,31,30,31,31,30,31,30,31];
    	var year = parseInt(date.substr(0,4)),
    		mon = parseInt(date.substr(5,7)),
    		day = parseInt(date.substr(8,10));
    	if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
    		return mon > 0 && mon <=12 && day > 0 && day <= rmons[mon-1];
    	}else{
    		return mon > 0 && mon <=12 && day > 0 && day <= pmons[mon-1];
    	}
    
    }

    使用JS内置对象Date进行判断:

    将输入的字符串直接转化为Date对象,并根据是否转化后的对象是否有效及重新拼接后是否和原来相同判断有效性。

    function judgeDate(date){
    	var pDate = new Date(date);
    	if(isNaN(pDate.getTime())){
    		return false;
    	}
    	var year = pDate.getFullYear(),
    		mon = /(\d+)/.test(pDate.getMonth()+1+"")&&RegExp.$1.length <= 1?"0"+RegExp.$1:RegExp.$1,
    		day = /(\d+)/.test(pDate.getDate()+"")&&RegExp.$1.length <= 1?"0"+RegExp.$1:RegExp.$1;
    	return date == year + "/" + mon + "/" + day;
    
    }

     

    展开全文
  • 华为OJ IP地址判断有效性

    千次阅读 2014-03-29 16:30:01
    判断输入的字符串是不是一个有效的IP地址   详细描述: 请实现如下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false,无效的IP...
  • 使用CTime判断日期有效性(C++)

    千次阅读 2013-12-01 11:15:44
    C++中判断日期的有效性,你还在背那些个月大月小的口诀吗?还有那个闰年的判定规则。其实用不着这些,试试CTime如何。
  • 初学C++时写的程序。 选择一个日期,依次输入年、月、日,判断有效性,并输出一天后的日期。
  • 网站链接有效性判断

    千次阅读 2006-04-21 20:41:00
    刚看了点xmlhttp的资料,觉得用它和java结合可以完成网页中链接的有效性判断(就是网页中链接的网站是否能访问),于是就做了下面的程序:一、判断链接有效的jsp页HttpURLVerify.jsp 功能函数包括:链接的有效性判断...
  • 通过AOP编程思想判断token的有效性

    千次阅读 2018-04-22 22:15:34
    每次访问接口的时候都需要验证传递token的有效性,常规的办法就是在每个接口中判断token的有效性,但如果接口个数比较多,那么就会增加开发人员编写代码的工作量。所以考虑是否有一种方法可以省去每次接口中判断...
  • 手机号码有效性判断

    千次阅读 2016-08-05 12:01:02
    全新专属电话验证通道、防刷量防作弊,防止羊毛党,免签名,无黑名单限制。 详情:http://www.haoservice.com/docs/115/getyanzhengresult#apicontent
  • 在实际开发过程中,经常会遇到些不能让用户随便地输入手机号码,对输入的手机号码的正确判断;...///// 手机号码的有效性判断 //检测是否是手机号码 - (BOOL)isMobileNumber:(NSString *)mobileNum {  /**  *
  • 数据包络分析方法(DEA)是一种重要的效率评价方法,它已经被广泛应用于经济和管理的众多学科.而正确、高效的软件系统则是...然后,给出了判断DEA有效性的方法和求解步骤.最后,给出了判断DEA有效性的算法及其流程.
  • python xml有效性判断

    千次阅读 2013-10-24 21:23:33
    #encoding= utf-8import xml.etree.ElementTree as ETtry: ET.parse("xml1.xml") print u"ok"except Exception,e: print u"error" print u"error:",e
  • SQL Server自定义函数判断Email字段的有效性
  • 真实场景运动目标轨迹有效性判断与自动聚类算法研究.pdf
  • 如何判断浮点数的有效性(C语言)

    千次阅读 2020-02-28 22:37:48
    文章目录一、问题描述1、什么情况下计算结果为inf2、什么情况下计算结果为nan二、判断浮点数的有效性二、推导步骤三、CCC代码四、总结五、参考文献/资料 一、问题描述   在编程过程中,有时候会因为考虑不周或者...
  • 题目判断输入的字符串是不是一个有效的IP地址详细描述:请实现如下接口 boolisIPAddressValid(constchar* pszIPAddr) 输入:pszIPAddr 字符串 输出:true 有效的IP地址,false,无效的IP地址约束输入IP为XXX.XXX....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 593,116
精华内容 237,246
关键字:

怎样判断有效性