// Package q8 implements a solution for https://leetcode.com/problems/string-to-integer-atoi/ package q8 const ( MIN = -(1 << 31) MAX = 1<<31 - 1 ) func myAtoi(s string) int { sign := 0 num := 0 Loop: for i := range len(s) { c := s[i] switch c { case '-': if sign != 0 { break Loop } sign = -1 case '+': if sign != 0 { break Loop } sign = 1 case ' ': if sign != 0 { break Loop } default: if c < '0' || c > '9' { break Loop } if sign == 0 { sign = 1 } num = num*10 + int(c-'0') if sign*num < MIN { num = -MIN break Loop } if sign*num > MAX { num = MAX break Loop } } } return sign * num } var _ = myAtoi