-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path8
56 lines (47 loc) · 989 Bytes
/
8
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
func myAtoi(str string) int {
var i int
var tag = 0
var a = 0
var j int
const (
INT_MAX int = 1<<31-1
INT_MIN int = -1<<31
)
for i = 0 ;i<len(str);i++{
if str[i]>='0'&&str[i]<='9'{
break
}else if str[i]=='+' {
i++
break
}else if str[i]=='-'{
i++
tag=1
break
}else if str[i] ==' '{
i=i
}else {
return 0
}
}
for j = i ;j<len(str);j++{
if str[j]>'9' || str[j]<'0'{
break
}
}
for k:=i; k<j; k++{
if tag==0{
d:=0
d=int(str[k]-'0')
a=a*10+d
if a>INT_MAX{
return INT_MAX
}}else {
e:=0
e=int(str[k]-'0')
a=a*10-e
if a<INT_MIN{
return INT_MIN
}
}}
return a
}