今天选的是atoi,链接 https://oj.leetcode.com/problems/string-to-integer-atoi/

下面是我的AC代码

def atoi(self, str):
    if str=='':
        return 0
    if (str.find('- ') >= 0) or (str.find('-+') >= 0) or (str.find('+-') >= 0) or (str.find('++') >= 0) or (str.find('--') >= 0):
        return 0
        
    if str[0] == '-':
        r='-0'
    else:
        r='0'
    result = 0
    for i in str.split('-'):
        for j in i.strip():
            if j=='+':
                continue
            try:
                int(j)
                r=r+j
            except:
                result = result + int(r)
                if result > 2147483647:
                    return 2147483647
                if result < -2147483648:
                    return -2147483648
                return result
        result = result + int(r)
        r='-0'
    
    if result > 2147483647:
        return 2147483647
    if result < -2147483648:
        return -2147483648
    return result 

题目是不难,规则比较坑爹

首先对于符号有不正常的限制,连续符号就返回0我觉得不符合数学观念;

其次对于负负得正的不需要。。。

不过学习到了Python在处理大数还是比较人性化的,不过此题已明说int类型,还是要注意的,反正我是被坑了

Runtime: 75 ms