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

【剑指offer】把字符串转换成整数

时间:2020-03-05 01:28:17      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:rank   lag   coder   pid   sans   使用字符串   代码   数值   ref   

题目链接:把字符串转换成整数

 

题意:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

 

题解:过滤掉空格,判断正负号,然后判断每个字符是否是数字,进行转换。但是!!!!这里要考虑一个溢出

做法就是记录正负号的时候,做一个标记,在最后和pow(2,31)做比较。

 

 

代码:

 1 class Solution {
 2 public:
 3     int StrToInt(string str){
 4         long long int ans = 0;
 5         int len = str.length();
 6         if(len == 0)    
 7             return 0;
 8         //空格
 9         int i = 0;
10         while(str[i] ==  )    i++;
11 
12         //正负
13         int flag = 1;
14         if(str[i] == +)
15             i++;
16         else if(str[i] == -){
17             i++;
18             flag = -1;
19         }   
20         while(i < len){
21             if(str[i] <= 9 && str[i] >=0){
22                 ans = ans*10 + (str[i]-0);
23                 i++;
24             }
25             else    return 0;
26 
27         }
28         if(ans * flag >= pow(2,31)) return 0;
29         else if(ans * flag < -pow(2,31)) return 0;
30         return ans * flag;
31     }
32 };

 

【剑指offer】把字符串转换成整数

标签:rank   lag   coder   pid   sans   使用字符串   代码   数值   ref   

原文地址:https://www.cnblogs.com/Asumi/p/12417136.html

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