剑指OFFER----面试题20. 表示数值的字符串
Posted clown9804
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指OFFER----面试题20. 表示数值的字符串相关的知识,希望对你有一定的参考价值。
链接:https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/submissions/
代码:
class Solution { public: bool isNumber(string s) { if (s.empty()) return false; bool e = 0, dot = 0, num = 0; int lo = 0, hi = s.size() - 1; while (lo <= hi && s[lo] == ‘ ‘) lo++; while (lo <= hi && s[hi] == ‘ ‘) hi--; if (lo > hi) return false; lo += (s[lo] == ‘+‘ || s[lo] == ‘-‘); for (int i = lo; i <= hi; ++i) { if (s[i] >= ‘0‘ && s[i] <= ‘9‘) num = 1; else if (s[i] == ‘.‘) { if (dot || e) return false; dot = 1; } else if(s[i] == ‘e‘) { if (e || !num || i == hi) return false; if (s[i + 1] == ‘+‘ || s[i + 1] == ‘-‘) ++i; e = 1, num = 0; } else return false; } return num; } };
以上是关于剑指OFFER----面试题20. 表示数值的字符串的主要内容,如果未能解决你的问题,请参考以下文章