剑指OFFER----面试题67. 把字符串转换成整数

链接:https://leetcode-cn.com/problems/ba-zi-fu-chuan-zhuan-huan-cheng-zheng-shu-lcof/

代码

class Solution {
public:
   int strToInt(string str) {
       int k = 0;
       while (k < str.size() && str[k] == ' ') k++;
       long long number = 0;
       bool is_minus = false;
       if (str[k] == '+') k++;
       else if (str[k] == '-') k++, is_minus = true;

       while (k < str.size() && str[k] >= '0' && str[k] <= '9') {
           int t = str[k] - '0';
           if (number > INT_MAX / 10 || (number == INT_MAX / 10 && t > 7)) { 
               return is_minus ? INT_MIN : INT_MAX;
           }
           number = number * 10 + t;
           k++;
       }
       if (is_minus) number *= -1;
       return (int)number;
   }
};
posted @ 2020-03-16 14:46  景云ⁿ  阅读(78)  评论(0编辑  收藏  举报