• 【剑指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 };
  • 相关阅读:
    【多线程】工具类汇总
    【JVM】GC日志样例解读
    【Docker】
    XXS level5
    XXS level4
    XXS level3
    XXS level2
    SQLI DUMB SERIES-6
    SQLI DUMB SERIES-5
    XXS level1
  • 原文地址:https://www.cnblogs.com/Asumi/p/12417136.html
Copyright © 2020-2023  润新知