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 }