LeetCode8 String to Integer (atoi)

题意:

Implement atoi to convert a string to an integer.  (Easy)

 

分析:

就是注意各种特殊情况,边界情况的判断,见代码注释。

 1 class Solution {
 2 public:
 3     int myAtoi(string str) {
 4         int start = 0;
 5         long long result = 0;
 6         int flag = 0;
 7         //开头多余空格的处理
 8         while (str[start] == ' ') {                                     
 9             start++;
10         }
11         if (str[start] == '+') {
12             start++;
13         }
14         // “+-2”情况, else if...
15         else if (str[start] == '-') {                                   
16             start++;
17             flag = 1;
18         }
19         //一开始就出现非法字符
20         if (str[start] < '0' || str[start] > '9') {                     
21             return 0;
22         }
23         //+-号处理完毕后开始多余0的处理
24         while (str[start] == '0') {                                     
25             start++;
26         }
27         for (int i = start; i < str.size(); ++i) {
28             //后续可以有多余数字
29             if (str[i] < '0' || str[i] > '9') {                         
30                 return (flag == 0) ? result : -result; 
31             }
32             int temp = str[i] - '0';
33             //用这种方式,不要用pow(x,y)
34             result = result * 10 + temp;
35             //溢出的处理
36             if (result > 0x7FFFFFFF ) {                                 
37                 return  (flag == 0) ? 0x7FFFFFFF : 0x80000000;
38             }
39         }
40         if (flag == 0) {
41             return result;   
42         }
43         else {
44             return -result;
45         }
46 
47     }
48 };

 

posted @ 2016-08-03 21:55  wangxiaobao1114  阅读(181)  评论(0编辑  收藏  举报