剑指 Offer 67. 把字符串转换成整数

发布时间 2023-09-11 22:51:29作者: 小星code

题目链接: 剑指 Offer 67. 把字符串转换成整数

题目描述:

写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。

解法思路:

直接模拟题

代码:


func strToInt(s string) int {
    s = strings.Trim(s, " ")
    minus := 1
    var ans int64 = 0
    for i := range s {
        // 处理正负号
        if i == 0 && (s[i] == '+' || s[i] == '-') {
            if s[i] == '-' {
                minus = -1
            }
            continue
        }
        // 非数字 非 +/-,直接跳出
        if s[i] < '0' || s[i] > '9' {
            break
        }
        // 处理数字
        ans = ans * 10 + int64(s[i]-'0')
        if minus == 1 && ans > math.MaxInt32 {
            return math.MaxInt32
        } else if minus == -1 && ans > math.MaxInt32+1 {
            return math.MinInt32
        }
    }
    return int(ans) * minus
}