问题描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、“±5”、"-1E-16"及"12e+5.4"都不是。
题目链接
思路
根据输入字符串是什么,来确定下一步走到哪里。初始状态为0。方框代表可以接受的状态,也就是最后要判断是否处在2,3,5,8,9这几个状态。
根据图列出这个表格以后,如果走到-1就要返回false,然后最后判断结尾字符是否是合法状态即可。
代码
class Solution {
public boolean isNumber(String s) {
int[][] transtable = new int[][]{
{
1,2,7,-1,-1,0},
{
-1,2,7,-1,-1,