zoukankan      html  css  js  c++  java
  • 剑指offer 表示数值的字符串

    题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

    代码:

    class Solution {
    public:
        bool isNumeric(char* string)
        {
            static bool symbol=1,sign=1,dot=1;;
            if(*string=='' && *(string-1)!=''){
                symbol=sign=dot=1;return true;}
            else if(*string>='0'&&*string<='9')
                return isNumeric(string+1);
            //判断正负号存在
            else if((*string=='+' || *string=='-') && ((*(string+1)>='0'&&*(string+1)<='9')||*(string+1)=='.') && !(*(string-1)>='0'&&*(string-1)<='9') && symbol){
                symbol=0;return isNumeric(string+1);}
            //判断小数点的存在
            else if(*string=='.' && (*(string+1)>='0'&&*(string+1)<='9') && ((*(string-1)>='0'&&*(string-1)<='9')||(*(string-1)=='+' || *(string-1)=='-')) && dot ){
                dot=0;return isNumeric(string+1);}
            //e存在时
            else if((*string=='e'||*string=='E') && (*(string-1)>='0'&&*(string-1)<='9') && *(string+1)!='' && sign){
                symbol=1;sign=0;return isNumeric(string+1);}
            else
                return false;
        }
    };

    我的笔记:需注意每个if与else的匹配规则,若想并行判断,则需要使用else if 这样可避免一个字符进行多次if判断。

  • 相关阅读:
    Google-Hack
    DnsLog盲注
    utf-8编码转换问题
    sql注入 无列名注入
    Python正则
    变形--缩放 scale()
    变形--扭曲 skew()
    变形--旋转 rotate()
    Css3中的变形与动画
    关于伪类元素:before和:after
  • 原文地址:https://www.cnblogs.com/john1015/p/12894536.html
Copyright © 2011-2022 走看看