力扣第八题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;
    }
};
相关推荐
营养充电站2 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
啊啊啊啊啊!!!!3 小时前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++
技术小黑3 小时前
RNN算法实战系列05 | 天气预测
人工智能·rnn·算法
(Charon)5 小时前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
Ivanqhz5 小时前
php8 use-def链
算法·php
evans在进步6 小时前
LeetCode 189 轮转数组:三次反转原地解决,图解 Java 实现
java·算法·leetcode
歌_顿6 小时前
Drawing_To_Model
算法
龍德明宇6 小时前
AI不会疼-龍德明宇
人工智能·算法·大语言模型llm·负主体性·ai存在论
ShineWinsu6 小时前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl