本文主要是介绍LeetCode | Valid Number,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写到一半不想写了,今天暂且写到这,下次继续。
按照DFA进行判断。
无符号整数
无符号小数
class Solution {
public:bool isNumber(string s) {return work(s.c_str());}bool work(const char* s){//1、忽略前置空格while(*s==' ') s++;if(*s=='0'){return num0(++s);}else if(*s>'0' && *s<='9'){return num(++s);}else if(*s=='.'){return dot(++s);}else{return false;}}bool num0(const char* s){if(*s=='X' || *s=='x'){//16进制return xnum(++s);}else if(specialNumber(s)){//8进制while(specialNumber(s)) s++;if(*s=='\0') return true;return false;}else }bool num(const char* s){}//16进制数字bool xnum(const char* s){while(xtypeNumber(s)) s++;if(*s=='\0') return true;return false;}//.开头的小数bool dot(const char* s){while(*s>='0' && *s<='9') s++;if(*s=='\0') return true;else if(*s=='F' || *s=='f'){//F或者f后为结尾if(*(++s)=='\0') return true;return false;}return false;}bool specialNumber(const char* c){if(*c>='0' && *c<'8') return true;return false;}bool pureNumber(const char* c){if(*c>='0' && *c<='9') return true;return false;}bool xtypeNumber(const char* c){if((*c>='0' && *c<='9')||(*c>='a' && *c<='f')||(*c>='A' && *c<='F')){return true;}return false;}};
这篇关于LeetCode | Valid Number的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!