题解 | #把字符串转换成整数(atoi)#

把字符串转换成整数(atoi)

http://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f

public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return int整型
     */
    int StrToInt(string s) {
        int left=0,flag=0;
        long long ans=0;
        while(s[left]==' '){
            left++;
        }
        if(s[left]=='-'){
            flag=1;
            left++;
        }else if(s[left]=='+'){
            left++;
        }
        if(s[left]>='a'&&s[left]<='z'){
            return 0;
        }
        cout<<INT_MIN;//特殊数据"2147483648"
        for(int i=left;i<s.size();i++){
            if(s[i]>='0'&&s[i]<='9'){
                
                if(ans>=INT_MAX/2){
                    if(flag){
                        return INT_MIN;
                    }
                    return INT_MAX;        
                }
                ans=ans*10+s[i]-'0';

            }else{
                break;
            }
        }
        if(ans>=INT_MAX&&!flag){
            return INT_MAX;
        }
//         if(ans>=INT_MIN&&flag){
//             return INT_MIN;
//         }
        if(flag) return -ans;
        return ans;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
06-11 13:34
门头沟学院 C++
offe从四面八方来:我真的没时间陪你闹了
点赞 评论 收藏
分享
有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务