problem
# Validate if a given string is numeric.
#
# Some examples:
# "0" => true
# " 0.1 " => true
# "abc" => false
# "1 a" => false
# "2e10" => true
# Note: It is intended for the problem statement to be ambiguous.
# You should gather all requirements up front before implementing one.
Idea
这是一道和算法无关的题,压根不值得花时间做。
AC
class Solution():
def isNumber(self, s):
s = s.strip()
if " " in s:
return False
if s.startswith('0') or s.lower().startswith('0b'):
try:
int(s, 2)
except:
pass
else:
return True
if s.startswith('0'):
try:
int(s, 8)
except:
pass
else:
return True
if s.lower().startswith('0x'):
try:
int(s, 16)
except:
pass
else:
return True
try:
int(s, 10)
except:
pass
else:
return True
try:
float(s)
except:
pass
else:
return True
return False
if __name__ == "__main__":
assert Solution().isNumber(" 0.1 ") == True
assert Solution().isNumber("abc") == False
assert Solution().isNumber("1 a") == False
assert Solution().isNumber("2e10") == True