资讯动态

DeepSeek 专家模式 LeetCode 8.字符串转换整数(atoi) Golang实现

发布时间:2026/8/28 5:16:15 来源:尧图企业网站定制
以下是 LeetCode 8. 字符串转换整数 (atoi) 的 Golang 实现包含详细的溢出处理逻辑gofunc myAtoi(s string) int {i, n : 0, len(s)// 1. 跳过前导空格for i n s[i] {i}// 2. 处理正负号sign : 1if i n {switch s[i] {case :icase -:sign -1i}}// 定义 32 位整数范围常量避免导入 math 包const (maxInt32 131 - 1minInt32 -1 31)result : 0// 3. 逐位解析数字for i n s[i] 0 s[i] 9 {digit : int(s[i] - 0)// 4. 溢出检查在累加前判断 result*10 digit 是否超过 MaxInt32if result (maxInt32-digit)/10 {if sign 1 {return maxInt32}return minInt32}result result*10 digiti}return sign * result}---算法思路1. 跳过前导空格循环移动索引直到遇到非空格字符。2. 处理符号检查当前字符是否为 或 -记录正负号。3. 解析数字循环读取连续的数字字符将其转换为整数。4. 溢出处理· 在每次累加前判断 result 是否会因为 result*10 digit 而超过 MaxInt32。· 若溢出根据正负号返回 MaxInt32 或 MinInt32。5. 返回结果将符号与最终数字相乘。---复杂度分析· 时间复杂度O(n)其中 n 是字符串长度只需一次遍历。· 空间复杂度O(1)只使用常数级额外空间。---测试用例输入 输出42 42 -42 -424193 with words 4193words and 987 0-91283472332 -2147483648该实现完全符合题目要求可以正确处理所有边界情况。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价