Leetcode8.字符串转换整数 -codetop


代码(首刷看解析 2024年9月5日)

cpp 复制代码
class Solution {
public:
    int myAtoi(string str) {
        unsigned long len = str.length();

        // 去除前导空格
        int index = 0;
        while (index < len) {
            if (str[index] != ' ') {
                break;
            }
            index++;
        }

        if (index == len) {
            return 0;
        }

        int sign = 1;
        // 处理第 1 个非空字符为正负符号,这两个判断需要写在一起
        if (str[index] == '+') {
            index++;
        } else if (str[index] == '-') {
            sign = -1;
            index++;
        }

        // 根据题目限制,只能使用 int 类型
        int res = 0;
        while (index < len) {
            char curChar = str[index];
            if (curChar < '0' || curChar > '9') {
                break;
            }

            if (res > INT_MAX / 10 || (res == INT_MAX / 10 && (curChar - '0') > INT_MAX % 10)) {
                return INT_MAX;
            }
            if (res < INT_MIN / 10 || (res == INT_MIN / 10 && (curChar - '0') > -(INT_MIN % 10))) {
                return INT_MIN;
            }

            res = res * 10 + sign * (curChar - '0');
            index++;
        }
        return res;
    }
};
相关推荐
YuanLiu_22717 分钟前
代码随想录算法训练营第十三天(递归遍历;迭代遍历;统一迭代;层序遍历)
java·数据结构·笔记·算法·leetcode
闻缺陷则喜何志丹20 分钟前
【C++动态规划】1411. 给 N x 3 网格图涂色的方案数|1844
c++·算法·动态规划·力扣·网格·数目·涂色
仙俊红35 分钟前
快速运行openMMOCR
深度学习·算法
-Max-静-1 小时前
Paddle Inference部署推理(十八)
人工智能·windows·深度学习·算法·paddle·推理 部署
f狐0狸x1 小时前
【数据结构实战篇】用C语言实现你的私有队列
c语言·数据结构·链表··队列
qq_485668992 小时前
算法习题--蓝桥杯
算法·职场和发展·蓝桥杯
代码中の快捷键2 小时前
MySQL数据库存储引擎的数据结构
数据结构·数据库·mysql
m0_676099582 小时前
数据结构--创建链表--Python
数据结构·python·链表
waves浪游2 小时前
类和对象(中)
c语言·开发语言·数据结构·c++·算法·链表
做人不要太理性2 小时前
【算法一周目】滑动窗口(2)
c++·算法·leetcode·哈希算法·散列表·滑动窗口