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

把字符串转换成整数

http://www.nowcoder.com/practice/1277c681251b4372bdef344468e4f26e

class Solution {
public:
    bool isNumOrJJ(char c)
    {
        if(c >= '0' && c<= '9')
            return true;
        if(c == '+' || c == '-')
            return true;
        return false;
    }
    int StrToInt(string str) {
        int flag=1;
        string s;
        //这个循环,将原先拥有各种符号的字符串修改为只有数字的字符串
        for(int i=0;i<str.size();i++)
        {
            if(!isNumOrJJ(str[i]))
            {
                return 0;
            }
            if(str[0]=='+')
            {
                flag=1;
            }
            if(str[0]=='-')
            {
                flag=-1;
            }
            if(str[i]!='+' && str[i]!='-')
            {
                s+=str[i];  
            }
        }
        
        //此时s对象的字符串已经是全部为数字的字符串
        //只需要将其化为数字即可。
        long long num=0;
        for(int i=0;i<s.size();i++)
        {
            //这里确实没有想到,这次记住了
            //让字符串数字变为整型数字
            //每次将其乘10,可以使该数左移一位,然后每次都留出个位
            num=num*10+(s[i]-'0');
            //这个数一定是整型数的区间内
            if(num > INT_MAX)
            {
                return 0;
            }
        }
        num*=flag;
        //该数一定在整型数的区间内
        if(num <INT_MIN)
        {
            return 0;
        }
        return num;
    }
};


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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