problem:https://leetcode.com/problems/string-to-integer-atoi/
这题题号挺前的,但一直没做。今天提了5次才过,终于知道这道题为什么通过率这么低了。主要就是if/else练习,尤其是完全没看题后会挂在很多地方。
class Solution { public: int myAtoi(string str) { unsigned long long res = 0; bool bPositive = true; bool bFind = false; for(int i = 0;i < str.size();i++) { if(str[i] == ' ') { if(bFind) return bPositive ? res : -res; else continue; } if(!bFind && str[i] == '-') { bFind = true; bPositive = false; continue; } if(!bFind && str[i] == '+') { bFind = true; bPositive = true; continue; } if(!isdigit(str[i])) return bPositive ? res : -res; bFind = true; unsigned long long num = str[i] - '0'; res = 10 * res + num; if(res >= INT_MAX) { if(!bPositive) { if(res == INT_MAX) return -INT_MAX; else return INT_MIN; } return INT_MAX; } } return bPositive ? res : -res; } };