classSolution{public:/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param str string字符串
* @return bool布尔型
*/boolisNumeric(string s){int l =0, r = s.size()-1;while(l <= r && s[l]==' ') l ++;while(l <= r && s[r]==' ') r --;if(l > r)returnfalse;
s = s.substr(l, r - l +1);if(s[0]=='+'|| s[0]=='-') s = s.substr(1);if(s.empty())returnfalse;if(s[0]=='.'&&(s.size()==1|| s[1]=='e'|| s[1]=='E'))returnfalse;int dot =0, e =0;for(int i =0; i < s.size(); i ++){if(s[i]=='.'){if(dot >0|| e >0)returnfalse;
dot ++;}elseif(s[i]=='e'|| s[i]=='E'){if(!i || i +1== s.size()|| e >0)returnfalse;if(s[i +1]=='+'|| s[i +1]=='-'){if(i +2== s.size())returnfalse;
i ++;}
e ++;}elseif(s[i]<'0'|| s[i]>'9')returnfalse;}returntrue;}};