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

Posted asumi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer把字符串转换成整数相关的知识,希望对你有一定的参考价值。

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

 

题意:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为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把字符串转换成整数的主要内容,如果未能解决你的问题,请参考以下文章

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

LeetCode(剑指 Offer)- 67. 把字符串转换成整数

LeetCode(剑指 Offer)- 67. 把字符串转换成整数

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

剑指offer系列39:把字符串转换成整数

剑指Offer对答如流系列 - 把字符串转换成整数