class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    bool isNumeric(string str) {
        int t=0;
        while(str[t]==' '){
            t++;
        }
        str.erase(0,t);
        t=str.size()-1;
        while(str[t]==' '){
            t--;
        }
        str.erase(t+1,str.size()-t+1);
        bool p=false,e=false;
        if(str[0]=='+'||str[0]=='-'){
            str.erase(0,1);
        }
        if(str.size()==0){
            return false;
        }
        for(int i=0;i<str.size();i++){
            if(str[i]=='.'){
                if(p==true){
                    return false;
                }
                if(str.size()==1){
                    return false;
                }
                p=true;
            }
            else if(str[i]=='E'||str[i]=='e'){
                if(i==0){
                    return false;
                }
                if(e==true){
                    return false;
                }
                p=true;
                e=true;
                if(i==str.size()-1){
                    return false;
                }
                if(str[i+1]=='+'||str[i+1]=='-'){
                    str.erase(i+1,1);
                }
                if(i==str.size()-1){
                    return false;
                }
            }
            else if(str[i]<'0'||str[i]>'9'){
                return false;
            }
        }
        return true;
    }
};