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

8. String to Integer (atoi)

时间:2018-06-08 15:48:02      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:class   amp   str   返回   int   pos   ++   否则   turn   

字符串处理的问题,有几个点要注意。

string 里的 find(), find_first_of(), find_first_not_of() 如果没找到,返回string::nops,值为-1。做题可以直接 int pos=str.find() ...

int 32位,范围是-2^31~2^31-1。 负数用补码形式保存,补码=反码+1。本题每次加上新的位时要判断是否越界,否则正数会加成负数。

class Solution {
public:
    int myAtoi(string str) {
        int i=str.find_first_not_of( );
        int indicator=1;
        if (i<str.size() && (str[i]==-||str[i]==+)){
            if (str[i++]==-) indicator=-1;
        }
        long long num=0;
        while (i<str.size() && isdigit(str[i])){
            num = 10*num+(str[i++]-0);
            if (indicator*num>=INT_MAX) return INT_MAX;
            if (indicator*num<=INT_MIN) return INT_MIN;  
        }
        return indicator*num;
    }
};

 

8. String to Integer (atoi)

标签:class   amp   str   返回   int   pos   ++   否则   turn   

原文地址:https://www.cnblogs.com/hankunyan/p/9155608.html

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