劍指Offer 20 表示數值的字串

2021-10-18 22:54:24 字數 965 閱讀 6148

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

class

solution

else

if(s[index]

=='e'

|| s[index]

=='e'

)else

if(s[index]

=='+'

|| s[index]

=='-'

)else

if(s[index]

=='.'

)else

if(s[index]

==' '

)else

++index;

}while

(index++index]

==' ');

return hasnum && index==n;}}

;

用四個變數區分狀態:hasnum,hasop,hase,hasdot

**結構如下:

1.while迴圈1號–略去前置空格

2.while迴圈2號–逐字元操作

0-9   hasnum置1

e/e   hase置1,e前應該hasnum,後面是新的數字,其他三項置0

+/-   hasop置1,+/-應該出現在數字首部

.    hasdot置1,點不能出現在e/e之後

空格   break

other  不應該含有其他字元

3.while迴圈3號–略去後置空格

4.判斷hasnum並且下標移動到了字串末尾

正規表示式

class

solution

}

劍指Offer 20 表示數值的字串

請實現乙個函式來判斷字串是否表示數值 包括整數和小數 例 字串 100 5e2 123 3.1416 1e 16 都表示數值,但 12e 1a3.14 1.2.3 5 12e 5.4 都不是。時間複雜度 o n 空間複雜度 o 1 def numeric strings s param s num ...

劍指Offer20 表示數值的字串

題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。考察的是 模式匹配的策略 的完整性 我們首先分析一下子可能是數值的字串的格式 在數值之前...

劍指offer 20 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如 字串 100 5e2 123 3.1416 和 1e 16 都表示數值 但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是 使用指標的指標 a.b e e c 對a b c 的判斷 class solution if ...