码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode8 String to Integer (atoi)

时间:2016-08-03 23:39:44      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

题意:

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

 

LeetCode8 String to Integer (atoi)

标签:

原文地址:http://www.cnblogs.com/wangxiaobao/p/5734720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!