美文网首页
LeetCode 8

LeetCode 8

作者: Junr_0926 | 来源:发表于2018-10-12 22:21 被阅读0次

    LeetCode 8 String to Integer (atoi)

    实现atoi函数,将字符串转换为整数。该函数会忽略开始的空格,然后将后面的字符作为整数进行转换,不管正数还是负数,并且后面的多余的字符会被忽略。
    发生溢出时只返回 INT_MAX(2^{31} − 1) or INT_MIN(−2^{31})
    如果第一个非空白字符不是数字序列,不转换。
    如果不转换,那么返回0

    思路

    class Solution(object):
        def myAtoi(self, str):
            """
            :type str: str
            :rtype: int
            """
            str = str.strip()
            if len(str) == 0 or (str[0] not in '+-' and not str[0].isdigit()):
                return 0
            if str[0] == '-':
                sign = -1
                str = str[1:]
            elif str[0] == '+':
                sign = 1
                str = str[1:]
            else:
                sign = 1
    
            ret = 0
            for s in str:
                if s.isdigit():
                    ret = ret * 10 + ord(s) - ord('0')
                else:
                    break
            return max(-2**31, min(sign * ret,2**31-1))
    
    if __name__ == '__main__':
        solver = Solution()
        for i in ['42', '    -42', 'werw 12421', '214 asfas', '-32987546394424']:
            print solver.myAtoi(i)
    
    

    相关文章

      网友评论

          本文标题:LeetCode 8

          本文链接:https://www.haomeiwen.com/subject/zwfnaftx.html