zoukankan      html  css  js  c++  java
  • [leetcode]String to Integer (atoi)

    class Solution {
    public:
        int myAtoi(string str) {
            long long sum = 0;
            int temp1 = 1;
            int max1 = 0x7fffffff;  
            int min1 = 0x80000000;  
            if(str.length() == 0 ) return 0;
            int k = 0;
            while(str[k] == ' ')
            {
                k++;
            }
            if(str[k] == '-') {temp1=-1;k++;}
            else if(str[k] == '+') {k++;}
            
            for(int i = k ; i < str.length(); i++)
            {
                
                if(str[i] >= '0' && str[i] <= '9')
                {
                     sum = sum*10 + (str[i]-'0');
                     if(sum > max1 || sum < min1)    
                     {
                        if(temp1 == -1)
                         {
                             return min1;
                         }
                        return max1;
                    }
               }
                else break;
            }
            sum *= temp1;
            return (int)sum;
        }
    };
    View Code

    String to Integer (atoi) 

    这题是我做的比较麻烦的一道题。要考虑:

    1、溢出

    2、开头只能+ - 之后如果出现+ - 则错误。

    3、空格考虑。

    4、以及你定义的sum能否装得下溢出,因为要判断是否超过最大最小值。

    总之,考虑的挺全。很锻炼人。面试必备啊简直

  • 相关阅读:
    织梦会员注册邮箱验证发送邮件配置教程
    垃圾回收
    0910
    0909
    vs2008 打包中添加卸载工具
    CLR
    委托
    软考之存储方式
    软考之面向对象-关系
    软考之合同法
  • 原文地址:https://www.cnblogs.com/yusenwu/p/4896004.html
Copyright © 2011-2022 走看看