力扣第八题C++ 字符串转换整数

题目

B站讲的很好的视频

【从零开始刷力扣学C++------第八题:字符串转换整数(atoi)】 https://www.bilibili.com/video/BV1gRN2enEEG/?share_source=copy_web\&vd_source=bb58b6e3e5f53973729fd5b59301b3dd

题解

cpp 复制代码
class Solution {
public:
    int myAtoi(string s) {
        int n = s.size();
        int ans = 0;//存放结果
        int sign = 1;//1为正号,-1为负号
        int i = 0;

        //空格
        while(s[i]==' '){
            i++;
            if(i==n) return 0;
        }//跳过空格

        //符号
        if(s[i] == '-') sign = -1;
        if(s[i] == '-' || s[i] == '+') i++;//跳过符号位

        for(;i<n;i++){
            if(s[i]>'9' || s[i]<'0') break;

            //INT_MAX=2147483647
            //INT_MIN=-2147483648
            if(ans>INT_MAX/10) return INT_MAX;
            else if(ans==INT_MAX/10 && s[i]>'7') return INT_MAX;

            if(ans<INT_MIN/10) return INT_MIN;
            else if(ans==INT_MIN/10 && s[i]>'8') return INT_MIN;

            ans = ans*10 + sign*int(s[i]-'0');
        }
        
        return ans;
    }
};
相关推荐
怕浪猫6 小时前
RAG 面试 6 连问,从原理到优化全部覆盖
python·算法·面试
无线通信科研笔记7 小时前
IEEE TVT 2026 论文精读与完整复现|相位误差如何重塑近场 RIS 的幅相响应
论文阅读·人工智能·python·算法·论文笔记
mmmmath_38 小时前
二叉树の递归遍历
算法
All for pursuit.8 小时前
【位运算-1】338.比特位计数
数据结构·c++·算法·leetcode
小师兄吃牛肉9 小时前
C语言中的nullptr有必要吗
c语言·c++·算法
WL学习笔记9 小时前
日期类(C++)
开发语言·c++·日期类实现
H.莓飛10 小时前
【C++】命名空间、缺省参数、函数重载与引用
linux·开发语言·c++·visual studio
一只小小的芙厨10 小时前
【线性DP】
学习·算法·动态规划
奋发向前wcx11 小时前
CSP-J复赛模拟赛5 王晨旭补题 2026.10.5
算法
汉克老师11 小时前
GESP2026年9月认证C++八级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程