劍指Offer學習 題53 表示數值的字串

2021-09-23 08:06:54 字數 1285 閱讀 9695

題目:

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

思路:

數字的表現格式為(±)a.be/e(+-)c,a為整數部分,b為小數部分,c為指數部分

1、判斷整數部分是否有正負號

2、判斷整數部分的值,直到出現"."或「e/e」,則跳出迴圈;

3、判斷小數部分的值,直到出現「e/e」,則跳出迴圈;

4、判斷指數部分的值,直到遍歷完位元組陣列。

程式:

public

class

subject53

int index =0;

//是否有正負號

if(str[0]

=='+'

|| str[0]

=='-'

)//判斷整數部分

while

(index < str.length)

if(str[index]

=='e'

|| str[index]

=='e')if

(str[index]

>=

'0'&& str[index]

<=

'9')

return

false;}

//判斷小數部分

while

(index < str.length)

break;}

if(str[index]

>=

'0'&& str[index]

<=

'9')

return

false;}

//判斷指數部分是否有正負號

if(index < str.length &&

( str[index]

=='+'

|| str[index]

=='-'))

//判斷指數部分

while

(index < str.length)

return

false;}

return

true;}

public

static

void

main

(string args)

}

劍指Offer習題

1.二維陣列中的查詢 題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。bool find int target,vector array else re...

劍指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 在數值之前可能有乙個表示正負的 或者 接下來是若干個...