【一天一道LeetCode】#65. Valid Number
一天一道LeetCode
本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github
欢迎大家关注我的新浪微博,我的新浪微博
欢迎转载,转载请注明出处
(一)题目
Validate if a given string is numeric.
Some examples:
“0” => true
” 0.1 ” => true
“abc” => false
“1 a” => false
“2e10” => trueNote: It is intended for the problem statement to be ambiguous. You should gather all requirements up front >before implementing one.
Update (2015-02-10):
The signature of the C++ function had been updated. If you still see your function signature accepts a const >char * argument, please click the reload button to reset your code definition.
(二)解题
题目大意:判断一个string数是否为有效数
大致从以下三点考虑这个问题:
1、全为数字
2、存在有且仅有一个’e‘,这个时候需要判断前后的数字有效,如4e+,.e1
3、存在有些仅有一个’.’,注意指数不能为小数
做题时没有考虑到的特殊情况:
“e”,“4e+”,“.e1”
class Solution {
public:
bool isNumber(string s) {
int len = s.length();
if(len == 0) return false;
//剔除前面的空格
int st = 0 ;
while(st<len&&s[st] == ' ') st++;
int ed = len-1;
//剔除后面的空格
while(ed>=0&&s[ed] == ' ') ed--;
if(st>ed) return false;//如果全是空格就返回false
//符号
if(s[st]=='+'||s[st]=='-') st++;
//标志.和e的位置
int hase = -1;
int hasdot =-1;
//开始循环
for(int i =st ; i <= ed ;)
{
if(s[i]>='0'&&s[i]<='9') i++;
else if(s[i]=='e')
{
if(hase==-1) hase = i;//只能出现一个e
else return false;
if(i==st||i==ed) return false;//e在最前面或最后面返回false
i++;
if(s[i]=='+'||s[i]=='-') i++;//考虑指数带有符号
if(i>ed) return false;//指数非法,如10e+
}
else if(s[i]=='.')
{
if(hasdot==-1) hasdot = i;//只能有一个.
else return false;
i++;
if(ed-st==0) return false;//string为“.”的特殊情况
}
else return false;
}
if(hase!=-1&&hasdot!=-1){//判断e前面的数字有效
if(hase<hasdot) return false;//指数不能为小数
if(hasdot==st&&hase-hasdot==1) return false;//“.e1”的特殊情况,e前面数要有效
}
return true;
}
};
【一天一道LeetCode】#65. Valid Number的更多相关文章
- [leetcode]65. Valid Number 有效数值
Validate if a given string can be interpreted as a decimal number. Some examples:"0" => ...
- leetCode 65.Valid Number (有效数字)
Valid Number Validate if a given string is numeric. Some examples: "0" => true " ...
- [LeetCode] 65. Valid Number 验证数字
Validate if a given string can be interpreted as a decimal number. Some examples:"0" => ...
- Leetcode 65 Valid Number 字符串处理
由于老是更新简单题,我已经醉了,所以今天直接上一道通过率最低的题. 题意:判断字符串是否是一个合法的数字 定义有符号的数字是(n),无符号的数字是(un),有符号的兼容无符号的 合法的数字只有下列几种 ...
- LeetCode 65 Valid Number
(在队友怂恿下写了LeetCode上的一个水题) 传送门 Validate if a given string is numeric. Some examples: "0" =&g ...
- [LeetCode] 65. Valid Number(多个标志位)
[思路]该题题干不是很明确,只能根据用例来理解什么样的字符串才是符合题意的,本题关键在于几个标志位的设立,将字符串分为几个部分,代码如下: class Solution { public: strin ...
- 【LeetCode】65. Valid Number
Difficulty: Hard More:[目录]LeetCode Java实现 Description Validate if a given string can be interpreted ...
- 【一天一道LeetCode】#191. Number of 1 Bits
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Write a ...
- 【leetcode】Valid Number
Valid Number Validate if a given string is numeric. Some examples:"0" => true" 0.1 ...
随机推荐
- 使用Web Audio API绘制音波图
摘要:Web Audio API是对<audio> 标签功能上的补充,我们可以用它完成混音.音效.平移等各种复杂的音频处理,本文简单的使用其完成音波图的绘制. PS:本例子使用ES6编程, ...
- OpenCV3.1.0中调用MHI(Motion History Images, 运动历史图像)
写在前边: OpenCV3.0+要想使用MHI,就要现安装扩展模块opencv_contrib.安装方法见:ubuntu 14.04 64位 安装Opencv3.1.0 (包含opencv_contr ...
- 工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧
Unity 是一个备受欢迎的游戏开发平台.它的功能令人印象深刻,同时也迎合了不同的游戏开发需求.游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 RPG 游戏到最流行的增强现实游戏 Po ...
- Dynamics CRM 安装CRM程序系统检查界面报未将对象引用设置到对象的实例的解决方法
今天在安装CRM的时候,在系统检查阶段遇到了如下的错误,咋看之下直接是懵逼的 但不要着急,界面上有两个按钮,一个是详细信息,一个是帮助,详细信息不用看了就那一行字也看不出什么,咱们点下帮助看看,定位到 ...
- Swift按照数组元素出现的次数及大小排序
要求如下: 1.已知一个数组,按照单个元素在数组中出现的次数作为重新排序的依据,个数多的排在前面 2.相同个数时候,元素值大的排前面 例子: [1, 2, 2, 3, 5, 5] 经过计算得到的结果是 ...
- 理解性能的奥秘——应用程序中慢,SSMS中快(6)——SQL Server如何编译动态SQL
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 接上文:理解性能的奥秘--应用程序中慢,SSMS中快(5)--案例:如何应对参数嗅探 我们抛开参数嗅探的话题,回到了本系列的最 ...
- Hibernate之实体关系映射
延迟加载与即时加载 例如Person类和Email类是一对多关系,如果设为即时加载,当加载Person时,会自动加载Email,如果设置为延迟加载,当第一次调用person.getEmails()时才 ...
- 这一次,VR离我们真的很近
从高考作文开始 今年号称是VR元年,虽然目前VR还没能像手机一样走进千家万户,但关于VR设备的关讨论是层出不穷.而今年高考,浙江省的作文题就与VR相关.网上购物.视频聊天等在 ...
- Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令
Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...
- Hive-RCFile文件存储格式
在新建Hive表时,可以使用stored as rcfile来指定hive文件的存储方式为RCFile. 一.RCFile文件结构 下图是一个RCFile的文件结构形式. 从上图可以看出: 1)一张表 ...