表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
思路:若开始有+-号,string++;+.123是正确的;.只能出现一次;e,E之后可以紧跟+-号,但之后不能出现.;e,E后必须有数字。
1 class Solution { 2 public: 3 bool isNumeric(char* string) 4 { 5 if(string==NULL) return false; 6 int flagpoint=0; 7 int flagE=0; 8 int flagnum=0; 9 int flagsign=0; 10 if(*string=='+'||*string=='-') 11 string++; 12 while(*string!='\0'){ 13 if(*string>='0'&&*string<='9'){ 14 flagnum=1; 15 string++; 16 if(flagE!=0) 17 flagE++; 18 continue; 19 } 20 if(flagpoint==0&&*string=='.'){ 21 string++; 22 flagpoint++; 23 continue; 24 } 25 if(flagnum==1&&flagE==0){ 26 if(*string=='e'||*string=='E'){ 27 if(*(string+1)=='-'||*(string+1)=='+'){ 28 string++; 29 } 30 string++; 31 flagE++; 32 flagpoint++; 33 continue; 34 } 35 } 36 return false; 37 } 38 if(flagE==1) return false; 39 return true; 40 } 41 42 };
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
分类:
剑指offer
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了