请你来实现一个 myAtoi(string s)
函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi
函数)。
func myAtoi(str string) int {
//去掉收尾空格
str = strings.TrimSpace(str)
result := 0
sign := 1
for i, v := range str {
if v >= '0' && v <= '9' {
result = result*10 + int(v-'0')
} else if v == '-' && i == 0 {
sign = -1
} else if v == '+' && i == 0 {
sign = 1
} else {
break
}
// 数值最大检测
if result > math.MaxInt32 {
if sign == -1 {
return math.MinInt32
}
return math.MaxInt32
}
}
return sign * result
}