侧边栏壁纸
博主头像
Hope博主等级

努力赚钱的工科研究生

  • 累计撰写 362 篇文章
  • 累计创建 129 个标签
  • 累计收到 5 条评论
标签搜索

LeetCode 8. 字符串转换整数 (atoi)

Hope
2022-03-28 / 0 评论 / 0 点赞 / 288 阅读 / 592 字
温馨提示:
本文最后更新于 2022-03-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

LeetCode 8. 字符串转换整数 (atoi)

思路:

atoi函数,如果是string转int的话,stoi参数是const char* 需要调用string的 c_str(),即假设string s = "1233" ,int ans = atoi(s.c_str());

代码:

class Solution {
public:
    int myAtoi(string s) {
        int n = s.size();
        int i=0;
        while(i<s.size()&&s[i]==' ') i++;
        if(i==s.size()) return 0;
        int minue=1;
        if(s[i]=='-') minue=-1,i++;
        else if(s[i]=='+') minue=+1,i++;

        int res = 0;

        while(i <= s.size() && isdigit(s[i])){
            int t = s[i] - '0';
            if(minue < 0 && -res < (INT_MIN + t) / 10) return INT_MIN;
            if(minue > 0 && res > (INT_MAX - t) / 10) return INT_MAX;
            if(-res * 10 - t == INT_MIN) return INT_MIN;
            res = res * 10 + t;
            i++;
        }
      
        return res * minue;
    }
};
0

评论区