atoi
今天选的是atoi,链接 https://oj.leetcode.com/problems/string-to-integer-atoi/
下面是我的AC代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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
This post is licensed under CC BY 4.0 by the author.