leet-code/string-to-integer-atoi/sol.go

30 lines
465 B
Go

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
}