剑指offer第20题:表示数值的字符串
实现一个函数用来判断字符串是否表示数值,如:’+100’、’5e2’表示数值,而’12e’、’1.2.3’不是
import re
class Solution:
def is_num(self, string):
"""
判断string是否数字的字符串
"""
if not string:
return False
REGEX = r'^[-+]?[\d]+?(.[\d]+?)?([eE][-+]?[\d]+?)?$|^[-+]?[eE][-+]?[\d]+?$'
match_obj = re.match(REGEX, string)
if match_obj:
return True
return False
if __name__ == '__main__':
string_list = ['', '+100', '5e2', '-123', '3.1416', '-1E-16', '0.5e2','-.5','12e', '1a3.14', '1.2.3', '+-5', '12e+5.4', 'e', '-e', '+e-']
solution = Solution()
for string in string_list:
print string,solution.is_num(string)