表示數值的字串

2021-09-30 16:34:15 字數 1064 閱讀 6186

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

思路:硬懟,列舉反例

不存在e或e,存在+或-且不在第一位,返回false,如1+23

存在e或e在最後一位,返回false,如123e

存在2個.,返回false,如1.2.3

同時存在+和-,返回false,如1+2-3

存在a,這裡取了個巧,我看樣例中反例有a,估計測試樣例中只有a,果然如此

同時存在e或e和.且e或e的座標大於.的座標,如12e1.2

根據這個思路寫**

class solution {

public:

bool isnumeric(string str)

{if(str.empty()) return false;

if(str.find('+')!=-1&&(str.find('e')==-1&&str.find('e')==-1)&&str.find('+')!=0) return false;

if(str.find('-')!=-1&&(str.find('e')==-1&&str.find('e')==-1)&&str.find('-')!=0) return false;

if(str.find('e')==str.size()-1||str.find('e')==str.size()-1) return false;

if(str.find('.')==0||str.find_first_of('.')!=str.find_last_of('.')) return false;

if(str.find('+')!=-1&&str.find('-')!=-1) return false;

if(str.find('a')!=-1) return false;

if((str.find('e')!=-1||str.find('e')!=-1)&&str.find('.')!=-1&&((str.find('e')能過測試樣例,但估計坑不少

字串 表示數值的字串

題目描述 實現乙個函式用來判斷字串是否表示數值 包括整數和小數以及使用科學計數法表示的數 分析 表示數值的字串的規則有 第乙個字元只能是 以及數字 數字字元後面只能接 或 e e 小數點後面必須要有字元且只能接數字字元或 e e e e 後面必須要接字元且只能接數字字元或者 後面必須要接數字字元 b...

表示數值的字串(字串)

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.第乙個數為 或者為 時,跳過。2.對於小數點 小數點只能出現一次 小數點不...

字串 表示數值的字串

此題出自牛客網的劍指offer專題 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路一 直接正規表示式擼起 實現 如下 public cl...