表示数值的字符串
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。
例如,字符串"+100"
,"5e2"
,"-123"
,"3.1416"
和"-1E-16"
都表示数值。
但是"12e"
,"1a3.14"
,"1.2.3"
,"+-5"
和"12e+4.3"
都不是。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | class Solution { public : bool isNumber(string s) { int i = 0; while (i < s.size() && s[i] == ' ' ) i ++ ; int j = s.size() - 1; while (j >= 0 && s[j] == ' ' ) j -- ; if (i > j) return false ; s = s.substr(i, j - i + 1); if (s[0] == '-' || s[0] == '+' ) s = s.substr(1); if (s.empty() || s[0] == '.' && s.size() == 1) return false ; int dot = 0, e = 0; for ( int i = 0; i < s.size(); i ++ ) { if (s[i] >= '0' && s[i] <= '9' ); else if (s[i] == '.' ) { dot ++ ; if (e || dot > 1) return false ; } else if (s[i] == 'e' || s[i] == 'E' ) { e ++ ; if (i + 1 == s.size() || !i || e > 1 || i == 1 && s[0] == '.' ) return false ; if (s[i + 1] == '+' || s[i + 1] == '-' ) { if (i + 2 == s.size()) return false ; i ++ ; } } else return false ; } return true ; } }; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!