美文网首页leetcode
8. String to Integer (atoi).go

8. String to Integer (atoi).go

作者: AnakinSun | 来源:发表于2019-03-22 13:19 被阅读0次

    先处理符号
    注意越界问题

    func myAtoi(str string) int {
        pos := 1
        res := 0
        str = strings.TrimSpace(str)
        if len(str) == 0 {
            return res
        }
        i := 0
        if str[i] == '+' {
            i++
            pos = 1
        } else if str[i] == '-' {
            i++
            pos = -1
        }
        for ; i < len(str); i++ {
            if pos*res >= math.MaxInt32 {
                return math.MaxInt32
            }
            if pos*res <= math.MinInt32 {
                return math.MinInt32
            }
            if str[i] < '0' || string(str[i]) > "9" {
                return res * pos
            }
            res = res*10 + int(str[i]) - '0'
        }
        if pos*res >= math.MaxInt32 {
            return math.MaxInt32
        }
        if pos*res <= math.MinInt32 {
            return math.MinInt32
        }
        return pos * res
    }
    

    相关文章

      网友评论

        本文标题:8. String to Integer (atoi).go

        本文链接:https://www.haomeiwen.com/subject/kxblvqtx.html