题目描述:(链接)
Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
解题思路:
题目挺麻烦的,需要考虑很多情况。
1 class Solution { 2 public: 3 int myAtoi(string str) { 4 int len = str.size(); 5 if(len == 0) return 0; 6 7 int sign = 1; 8 int i = 0; 9 10 while (str[i] == ' ') { 11 i++; 12 } 13 14 // 符号 15 if(str[i] == '+' || str[i] == '-') { 16 if(str[i] == '+') { 17 sign = 1; 18 } else { 19 sign = -1; 20 } 21 ++i; 22 } 23 24 long ans = 0; 25 while(isdigit(str[i])) { 26 ans = ans * 10 + str[i] -'0'; 27 if(ans > INT_MAX) { 28 return sign == 1 ? INT_MAX : INT_MIN; 29 } 30 ++i; 31 } 32 33 return ans * sign; 34 } 35 };