問題描述:請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+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...