【leetcode】Valid Number
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:
     enum TYPE
     {
         INVALID,
         SPACE,
         SIGN,
         DIGIT,
         DOT,
         EXP
     };
     bool isNumber(const char *s) {
         while(*s!='\0'&&*s==' ') s++;
         if(*s=='+'||*s=='-') s++;
         if(strlen(s)==) return false;
         bool hasSign=false;
         bool hasDigit=false;
         bool hasDot=false;
         bool hasExp=false;
         TYPE preType;
         TYPE type;
         while(*s!='\0')
         {
             type=getType(s);
             if(type==INVALID) return false;
             if(preType==SIGN &&(type!=DIGIT&&type!=DOT)) return false;
             if(preType==DOT&&(type!=DIGIT&&type!=SPACE&&type!=EXP))return false;
             if(preType==EXP&&(type!=DIGIT&&type!=SIGN))return false;
             if(preType==SPACE&&type!=SPACE)return false;
             switch(type)
             {
                 case SPACE:
                     preType=SPACE;
                     break;
                 case SIGN:
                     if(hasSign) return false;
                     else
                     {
                         if(preType!=EXP) return false;
                         hasSign=true;
                         preType=SIGN;
                     }
                     break;
                 case DIGIT:
                     hasDigit=true;
                     preType=DIGIT;
                     break;
                 case DOT:
                     if(hasDot||hasExp) return false;
                     else
                     {
                         hasDot=true;
                         preType=DOT;
                     }
                     break;
                 case EXP:
                     if(hasExp||!hasDigit) return false;
                     else
                     {
                         hasExp=true;
                         preType=EXP;
                     }
                     break;
             }
             s++;
         }
         if(preType==SIGN||preType==EXP||(!hasDigit&&hasDot)) return false;
         return true;
     }
     TYPE getType(const char *s)
     {
         if(*s==' ') return SPACE;
         else if(*s=='+'||*s=='-') return SIGN;
         else if(isdigit(*s))return DIGIT;
         else if(*s=='.')return DOT;
         else if(*s=='e')return EXP;
         else return INVALID;
     }
 };
【leetcode】Valid Number的更多相关文章
- 【LeetCode】Largest Number 解题报告
		[LeetCode]Largest Number 解题报告 标签(空格分隔): LeetCode 题目地址:https://leetcode.com/problems/largest-number/# ... 
- 【LeetCode】792. Number of Matching Subsequences 解题报告(Python)
		[LeetCode]792. Number of Matching Subsequences 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://f ... 
- 【LeetCode】673. Number of Longest Increasing Subsequence 解题报告(Python)
		[LeetCode]673. Number of Longest Increasing Subsequence 解题报告(Python) 标签(空格分隔): LeetCode 题目地址:https:/ ... 
- 【LeetCode】Single Number I & II & III
		Single Number I : Given an array of integers, every element appears twice except for one. Find that ... 
- 【leetcode】1178. Number of Valid Words for Each Puzzle
		题目如下: With respect to a given puzzle string, a word is valid if both the following conditions are sa ... 
- 【leetcode】Valid Triangle Number
		题目: Given an array consists of non-negative integers, your task is to count the number of triplets c ... 
- 【Leetcode】【Hard】Valid Number
		Validate if a given string is numeric. Some examples:"0" => true" 0.1 " => ... 
- 【LeetCode】476. Number Complement (java实现)
		原题链接 https://leetcode.com/problems/number-complement/ 原题 Given a positive integer, output its comple ... 
- 【LeetCode】996. Number of Squareful Arrays 解题报告(C++)
		作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 回溯法 日期 题目地址:https://leetco ... 
随机推荐
- ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
			] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题 标签: myeclipsejavawebWeb App Libraries 2013-10-16 1 ... 
- phpize 扩展GD库 安装 ! 环境--centos 7  +nginx 1.7.11+php 5.6.7
			使用phpize编译GD库安装,先安装前置库libjpeg libpng zlib freetype等 都是下面php编译的几个选项 先看php编译的选项: --with-gd=DIR ... 
- Yii2 使用 Joins 查询
			Join() JOIN_TYPE = INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN 等等 语法 $query = new ... 
- 【8-17】HTML测试
			Source : http://www.w3school.com.cn/html HTML 测验 结果:9/20 您的回答: 1.HTML 指的是? 您的回答:超文本标记语言(Hyper Text M ... 
- 有关html5设计那些事,你真的考虑过前端的实现吗(最近别人经常问我这种问题,所以我就写一篇了,可能也有别人和我一样吐槽过)
			很久以前在安卓2.0系统刚刚的时候就对HTML5比较关注!因为我也是那个时候刚刚入行做前端的.那个时候最大的乐趣就是看着w3plus上面各种css3的效果,觉得哇,好牛逼原来可以这样做,然后3年过去了 ... 
- [译]Create a Web API in MVC 6
			原文: http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6 ASP.NET 5.0的一个目标是合并MV ... 
- hadoop +zookeeper + hbase 单节点安装
			项目描述: 今天花了680元买了阿里云的一台内存1G, 带宽1M 的云主机. 想以后方便测试用,而且想把自己的博客签到自己的主机上.所以自己就搭了一个测试的环境. 可以用来进行基本的hbase 入库, ... 
- ICloud没有密码怎么注销?
			忘了密码的用这方法就可以啦1.现在我说你做 . 先进入 iCloud 点击 某某账户(要删的账户)2.第二栏密码那里删除原来的再输入ios(任意密码)3.然后点完成 之后会出现错误.请点 好.然后左上 ... 
- C#之XMAL与WPF
			XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Butt ... 
- PL/SQL创建数据表空间
			创建数据表空间create tablespace stbss datafile 'E:\oracle\product\10.2.0\oradata\orcl\stbss_temp01.dbf' siz ... 
