string-to-integer-atoi
This commit is contained in:
parent
b2cb398c71
commit
6b0e32d66a
|
@ -0,0 +1,29 @@
|
|||
package main
|
||||
|
||||
var MIN, MAX = -(1 << 31), (1 << 31) - 1
|
||||
|
||||
func myAtoi(s string) int {
|
||||
m, n, c := 1, true, 0
|
||||
for _, char := range s {
|
||||
if n && char == ' ' {
|
||||
continue
|
||||
} else if n && char == '-' {
|
||||
m = -1
|
||||
} else if !(n && char == '+') {
|
||||
char_n := int(char - '0')
|
||||
if char_n < 0 || char_n > 9 {
|
||||
break
|
||||
}
|
||||
c *= 10
|
||||
c += char_n
|
||||
if c < 0 || c > MAX {
|
||||
if m == 1 {
|
||||
return MAX
|
||||
}
|
||||
return MIN
|
||||
}
|
||||
}
|
||||
n = false
|
||||
}
|
||||
return c * m
|
||||
}
|
Loading…
Reference in New Issue