[LeetCode]String to Integer (atoi)

题目描述:(链接)

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 };

 

posted @ 2015-12-19 15:14  skycore  阅读(128)  评论(0编辑  收藏  举报