力扣第八题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;
    }
};
相关推荐
SimpleLearingAI8 分钟前
聚类算法详解
算法·数据挖掘·聚类
刀法如飞1 小时前
Go 字符串查找的 20 种实现方式,用不同思路解决问题
算法·面试·程序员
Byron Loong2 小时前
【c++】为什么有了dll和.h,还需要包含lib
java·开发语言·c++
Dlrb12113 小时前
C语言-指针数组与数组指针
c语言·数据结构·算法·指针·数组指针·指针数组·二级指针
WL_Aurora3 小时前
Python 算法基础篇之集合
python·算法
坚果派·白晓明3 小时前
【鸿蒙PC三方库移植适配框架解读系列】第一篇:Lycium C/C++ 三方库适配 — 概述与环境配置
c语言·开发语言·c++·harmonyos·开源鸿蒙·三方库·c/c++三方库
平行侠3 小时前
A15 工业路由器IP前缀高速检索与内存压缩系统
网络·tcp/ip·算法
咩咦4 小时前
C++学习笔记02:cin 和 cout 输入输出
c++·学习笔记·cin·输入输出·cout
咩咦4 小时前
C++学习笔记05:引用和常引用
c++·学习笔记·引用·const·常引用
香蕉鼠片4 小时前
算法过程中不会的
开发语言·c++