实现将字符串转换为整数
- 从头开始去掉空字符,直到找到第一个非空白字符;
- 从这个字符开始(开头字符可以是整数,正号或负号),后面跟随数字;
- 如果开头字符不是整数,正号或负号,则返回0
- 如果数字大于(2**31 − 1)或者小于(−2**31) ,则返回 (2**31 − 1) 或 (−2**31)
- 遇到小数要转换成整数
- 如果为空字符串或其他情况,全部返回0
Example 1:
Input: "42"
Output: 42
Example 2:
Input: " -42"
Output: -42
Example 3:
Input: "4193 with words"
Output: 4193
Example 4:
Input: "words and 987"
Output: 0
Example 5:
Input: "-91283472332"
Output: -2147483648
import re
class Solution:
def myAtoi(self,str):
r = re.match(r"[-+]?\d+", str.lstrip())
if r and 2**31-1<int(r.group(0)):
return 2**31-1
else if r and int(r.group(0))<-2**31 :
return -2**31
else if r else 0:
return int(r.group(0))
此题在某种程度上考察的是正则表达式,还有字符串函数rstrip,所以基础知识一定要扎实。