劍指offer(53)表示數值的字串

2021-09-20 13:09:21 字數 925 閱讀 9002

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

思路:1.正規表示式。

[\\+\\-]?            -> 正或負符號出現與否

\\d*                 -> 整數部分是否出現,如-.34 或 +3.34均符合

(\\.\\d+)?           -> 如果出現小數點,那麼小數點後面必須有數字;

否則一起不出現

([ee][\\+\\-]?\\d+)? -> 如果存在指數部分,那麼e或e肯定出現,+或-可以不出現,

緊接著必須跟著整數;或者整個部分都不出現

2.逐個判斷,以x.ye(e)z為例,x,z可以為有符號數,y為無符號數,依次判斷。

**1:

public class solution 

}

**2:

public class solution 

if (index < str.length && (str[index] == 'e' || str[index] == 'e'))

return flag && index == str.length;

}private boolean scaninteger(char str)

private boolean scanunsignedinteger(char str)

}

劍指offer 53 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題的主要解題思路如下 首先判斷字串是否為空,或者首元素是否為 若是是則直接返回false 否...

劍指offer 53 表示數值的字串

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。輸出描述 true false 在數值之前可能有乙個表示正負的 或者 接下來是若干個...

劍指Offer53 表示數值的字串

思路 coding utf 8 class solution s字串 def isnumeric self,s write code here hase false sign false decimal false for i in range 0,len s if s i e or s i e i...