劍指offer 表示數值的字串

2021-10-01 23:54:02 字數 1063 閱讀 6122

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100",「5e2」,"-123",「3.1416"和」-1e-16"都表示數值。 但是"12e",「1a3.14」,「1.2.3」,"±5"和"12e+4.3"都不是。

數字分為四種,詳情見**的注釋部分;

當數字**現第二個小數點當情況下,返回false;

數字中已經有e或e,後面又出現了小數點,表明指數是小數,返回false;

數字**點第二個e或e,返回false;

數字中的第一位只可能是『-』,『+』, 『0~9』,在最外面做判斷,不符合的直接返回false;

排除首位之後,再碰到『-』或『+』,則其只能是指數部分的開頭,即前面一位必定是『e』或』e『,如果不符合,返回false;

排除以上情況,如果出現了0~9之外的數,返回false;

數字的最後一位不能是『-』,『+』,『e』,『e』。

public

class

solution

else

if(str[i]

=='e'

|| str[i]

=='e'

)else

if(str[i]

=='-'

|| str[i]

=='+'

)// 參考思路中第7條

}else

if(str[i]

<

'0'|| str[i]

>

'9')

i++;}

// 參考思路中第8條

if(str[str.length -1]

=='-'

|| str[str.length -1]

=='+'

|| str[str.length -1]

=='e'

|| str[str.length -1]

=='e'

)return

false

;return

true;}

return

false;}

}

劍指Offer 表示數值的字串

題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。基本思路 字串應滿足通式a b e ec 或者.b e ec 其中,a c表示有 或無 ...

表示數值的字串 劍指offer

這道題寫起來比較繁瑣,需要考慮 號是否出現在第乙個位置,是否出現一次,以e為分割前後是不是正確的格式,e前可以為浮點數或者整數,e後只能是整數。因此如果把函式分成三個子函式來寫就好多了,乙個函式判斷是不是整數,乙個判斷是不是浮點數,乙個判斷e前後是否合法。include include bool i...

劍指offer 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題考查對字串的程式設計能力,我們需要從不同型別的數值中分析規律,要全面考慮數值整數,小數,指...