• Valid Number


    Validate if a given string is numeric.

    Some examples:
    "0" => true
    " 0.1 " => true
    "abc" => false
    "1 a" => false
    "2e10" => true

    Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

    class Solution {
    public:
        bool isNumber(string s) {
            int len = s.length();
            int dotNum = 0;
            int eNum = 0;
    
            //去掉首位的空格
            int start = len;
            for(int i=0;i<len;i++){
                if(s[i] != ' '){
                    start = i;
                    break;
                }
            }
            for(int i=len-1;i>=0;i--){
                if(s[i] == ' '){
                    len--;
                }else{
                    break;
                }
            }
            if(start > len) return false;
    
            for(int i=start;i<len;i++){
                if(s[i] >= '0' && s[i] <= '9'){
                    continue;
                }else if(s[i] == '.'){
                    if(dotNum > 0 || eNum >0 ) return false;
                    dotNum++;
                    if(i == start && i == len-1) return false;
                    if(!(s[i-1] >= '0' && s[i-1] <= '9') && (i==len-1 || !(s[i+1] >= '0' && s[i+1] <= '9'))) return false;
                }else if(s[i] == 'e'){
                    if(eNum > 0) return false;
                    eNum++;
                    if(i==start) return false;
                    if(s[i-1] == '-' || s[i-1] == '+')  return false;
                    if( i == len - 1)  return false;
                }else if(s[i] == '-'){
                    if(i != start && s[i-1] != 'e') return false;
                    if(i == len-1) return false;
                }else if(s[i] == '+'){
                    if(i != start && s[i-1] != 'e') return false;
                    if(i==len-1) return false;
                }else{
                    return false;
                }
            }
            return true;
    
        }
    };
  • 相关阅读:
    [51nod 1135] 原根
    [CF1303F] Number of Components
    [CF1303E] Erase Subsequences
    [CF1303D] Fill The Bag
    子域名收集的一些姿势
    使用phpstorm+wamp实现php代码实时调试审计
    XSS小游戏通关Writeup
    Exif xss
    xss的一个tip
    应急响应
  • 原文地址:https://www.cnblogs.com/wxquare/p/5869930.html
Copyright © 2020-2023  润新知