您的位置:首页 > 编程语言 > Python开发

【Leetcode】【python】String to Integer (atoi)

2017-09-02 06:32 531 查看

题目大意

写出函数,将str转为int

需要考虑所有可能的输入情况

解题思路

将情况都考虑进去

代码

class Solution(object):
def myAtoi(self, str):
"""
:type str: str
:rtype: int
"""
INT_MAX =  2147483647
INT_MIN = -2147483648
result = 0

if not str:  # 不是str返回0
return result

i = 0
while i < len(str) and str[i].isspace():  # 判断空格
i += 1

sign = 1  # 若有‘-’结果相反数
if str[i] == "+":
i += 1
elif str[i] == "-":
sign = -1
i += 1

while i < len(str) and str[i] >= '0' and str[i] <= '9':
if result > (INT_MAX - (ord(str[i]) - ord('0'))) / 10:
return INT_MAX if sign > 0 else INT_MIN
result = result * 10 + ord(str[i]) - ord('0')
i += 1

return sign * result


总结

这里用ord()计算ascii的差值,如果直接int()那就等于把这题直接用内部函数解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string python leetcode