正则表达式:
^:匹配字符串开头
[\+\-]:代表一个+字符或-字符
?:前面一个字符可有可无
\d:一个数字
+:前面一个字符的一个或多个
\D:一个非数字字符
*:前面一个字符的0个或多个
max(min( result, 上限), 下限) 用来防止结果越界
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
class Solution:
def myAtoi(self, str):
INT_MAX = 2**31 - 1
INT_MIN = -2**31
str = str.lstrip() #清除左边多余的空格
num_re = re.compile(r'^[\+\-]?\d+') #设置正则规则
num = num_re.findall(str) #查找匹配的内容
print num
num = int(*num) #由于返回的是个列表,解包并且转换成整数
return max(min(num,INT_MAX),INT_MIN) #返回值
if __name__ == "__main__":
testList = [' -42', ' +234 a', '+-1', 'asc 12']
s = Solution()
result = [s.myAtoi(item) for item in testList]
print result