# -*- coding:utf-8 -*-
class Solution:
    """
    题目描述

    请实现一个函数用来判断字符串是否表示数值（包括整数和小数）。
    例如，字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。
    但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
    """

    # s字符串
    def isNumeric(self, s):
        # 这个题像是之前题目的升级版
        # 因为需要考虑 e 及 后面的处理过程
        # 如果写if else条件表达式的话 比较复杂
        # 比较好的解决思路使用  自动机 来处理这个问题
        # 状态应该有这些 开始-符号-整数-小数点-小数-e-符号-整数-结束

        # pythonic
        try:
            float(s)
            return True
        except:
            return False
