String to Integer (atoi) 字符到数字

Medium, Array/String

将一个字符转换为数字,开头和结尾的空格忽略。开头的‘+’和‘-’需要考虑。

Solution

此题的关键是防止溢出,最大数为2^31-1,最小数为-2^31

class Solution(object):
    def myAtoi(self, str):
        """
        :type str: str
        :rtype: int
        """
        if len(str) == 0 : return 0
        ls = list(str.strip())
        
        sign = -1 if ls[0] == '-' else 1
        if ls[0] in ['-','+'] : del ls[0]
        ret, i = 0, 0
        while i < len(ls) and ls[i].isdigit() :
            ret = ret*10 + ord(ls[i]) - ord('0')
            i += 1
        return max(-2**31, min(sign * ret,2**31-1))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,268评论 0 4
  • 我的确是需要一份工作来证明自己,否则母亲和父亲一定会极力劝说我在这个鸟不拉屎的地方继续待下去。第二天,趁着天擦黑,...
    kylingzhan_8b8c阅读 303评论 0 0
  • 日本之行第三天----京都。我们从大阪坐新干线到京都,再从京都坐近铁去东寺,我们这次京都之旅会居住在日本民宿,...
    杏子心语阅读 608评论 0 0
  • 检视区间:6月5-11日 检视范围:八大关注 1、家庭: 1)夫妻关系: 2)父母关系: 3)亲子时间: 2、社交...
    alicewang588阅读 161评论 0 0