func myAtoi(str string) int {
var result string
i := 0
if len(str) > 0 {
for i < len(str) && str[i] == ' ' {
i++
}
if i >= len(str){
return 0
}
var sign bool
if str[i] == '-' {
sign = false
i++
} else if str[i] == '+' {
sign = true
i++
} else if _, err := strconv.ParseFloat(string(str[i]), 64); err != nil {
return 0
} else {
sign = true
}
for i < len(str) {
if _, err := strconv.ParseFloat(string(str[i]), 64); err == nil {
result += string(str[i])
fmt.Println(i)
} else {
break
}
i++
}
val, _ := strconv.Atoi(result)
if float64(val) >= math.Pow(2, 31) && sign == true{
return 2147483647
} else if -1*float64(val) < -1*math.Pow(2, 31) && sign == false {
return -2147483648
}
if sign == true {
return val
} else {
return val * -1
}
}
return 0
}