Leetcode-08字串轉換整數 (atoi)
阿新 • • 發佈:2018-12-03
C++程式碼和C程式碼差不多,上C++程式碼
推薦一個網頁https://www.cnblogs.com/grandyang/p/4606334.html
class Solution { public: int myAtoi(string str) { if (str.empty()) return 0; int sign = 1, base = 0, i = 0, n = str.size(); while (i < n && str[i] == ' ') ++i; if (str[i] == '+' || str[i] == '-') { sign = (str[i++] == '+') ? 1 : -1; } while (i < n && str[i] >= '0' && str[i] <= '9') { if (base > INT_MAX / 10 || (base == INT_MAX / 10 && str[i] - '0' > 7)) { return (sign == 1) ? INT_MAX : INT_MIN; } base = 10 * base + (str[i++] - '0'); } return base * sign; } };
C語音標準庫中有INT_MAX和INT_MIN,我開始重定義的時候沒加標準庫,然後沒用移位,用了pow這個函式,這是浮點型函式。導致C程式提交不通過。還要繼續加油。