leetcode 65 有效數字

2021-09-02 05:37:36 字數 1777 閱讀 1187

不知道這道題對於演算法有什麼作用,而且每個人可能理解有效的數字都不一樣,怎麼能證明考慮周到不周到呢,不斷的提交就完了

下面的是我認為肯定不合格但是卻是合格的一些代表

"+45.e+67"->true

".1"->true

"1."->true

"0123"->true

bool isnumber(std::string s) 

if(s.find_first_of(" ")!=-1)

return false;

if(s.find_first_of(".")!=s.find_last_of("."))

return false;

for(int i=0;i'9'&&s[i]!='e'))

return false;

if((s[i]=='e')&&((i==1&&(s[0]=='+'||s[0]=='-'))||i==0||i==s.size()-1))

return false;

}if(s.find_first_of("e")!=s.find_last_of("e"))

return false;

if(s.find_first_of("+")!=s.find_last_of("+")&&(s[s.find_last_of("+")-1]!='e'))

return false;

if(s.find_first_of("-")!=s.find_last_of("-")&&(s[s.find_last_of("-")-1]!='e'))

return false;

if(s[0]=='e')

return false;

int a=s.find_first_of('.');

if(s[a+1]=='e'&&a!=0)

if(s.size()==a+1)

return false;

if(s[0]=='.'&&(s[1]=='e'))

return false;

if(s[0]=='+'||s[0]=='-')

int b=s.find_first_of('e');

int c=s.find_first_of('.');

if(b!=-1&&b

return false;

c=s.find_first_of('+');

if(b!=-1&&c+1==b)

return false;

c=s.find_first_of('-');

if(b!=-1&&c+1==b)

return false;

if(s.find_first_of("+")!=-1)

if(s.find_first_of("+")!=0)

if(s.find_first_of("e")==-1)

return false;

if(s.find_first_of("-")!=-1)

if(s.find_first_of("-")!=0)

if(s.find_first_of("e")==-1)

return false;

if(s[s.size()-1]=='+'||s[s.size()-1]=='-')

return false;

if(s[0]=='+'||s[0]=='-')

return true;

}

leetcode65 有效數字

驗證給定的字串是否為數字。例如 0 true 0.1 true abc false 1 a false 2e10 true 說明 我們有意將問題陳述地比較模糊。在實現 之前,你應當事先思考所有可能的情況。更新於 2015 02 10 c 函式的形式已經更新了。如果你仍然看見你的函式接收 const ...

leetcode65 有效數字

作弊法 利用try except機制,直接判斷是否可以通過float 函式 class solution def isnumber self,s str bool try float s return true except return false 面試的時候這麼寫基本byebye 設定幾個布林值...

leetcode65 有效數字

驗證給定的字串是否可以解釋為十進位制數字。例如 0 true 0.1 true abc false 1 a false 2e10 true 90e3 true 1e false e3 false 6e 1 true 99e2.5 false 53.5e93 true 6 false 3 false ...