funcmyAtoi(str string)int { arr := strings.Fields(strings.TrimSpace(str)) iflen(arr) == 0 { return0 } var result int symbol := 1 const min = -1 << 31 const max = 1<<31 - 1 for i, s := range arr[0] { switch s { case'0', '1', '2', '3', '4', '5', '6', '7', '8', '9': result = result*10 + symbol*int(s) - symbol*int('0') case'+': if i != 0 { return result } case'-': if i != 0 { return result } symbol = -1 default: return result } if result < min { return min } if result > max { return max } } return result }