go语言
func myAtoi(str string) int {
len_str := strings.Count(str,"") - 1
var s string = ""
for i := 0;i < len_str ; i++{
if str[i:i+1] == " " && s == ""{
continue
}else if str[i:i+1] == "-" && s == ""{
s += "-"
}else if str[i:i+1] == "+" && s == ""{
s += "+"
}else if str[i:i+1] == "0" && (s == "+" || s == "-"){
continue
}else if str[i:i+1] <= "9" && str[i:i+1] >= "0"{
s += str[i:i+1]
}else{
break
}
}
var j int = 0
for i := 0;i < strings.Count(s,"") - 1 ; i++{
if s[i:i+1] == "0"{
j++
}else{
break
}
}
s = s[j:]
if strings.Count(s,"") - 1 > 11 && s[0:1] == "-" {
return -2147483648
}else if strings.Count(s,"") - 1 > 11{
return 2147483647
}
num,err := strconv.Atoi(s)
if err != nil{
return num
}
if num < -2147483648{
num = -2147483648
}else if num > 2147483647{
num = 2147483647
}
return num
}