美文网首页面试算法
牛客-剑指0ffer-把字符串转换成整数

牛客-剑指0ffer-把字符串转换成整数

作者: wenyilab | 来源:发表于2019-08-22 08:54 被阅读1次

    题目描述

    将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。

    输入描述:

    输入一个字符串,包括数字字母符号,可以为空

    输出描述:

    如果是合法的数值表达则返回该数字,否则返回0

    示例1

    输入

    +2147483647
    1a33

    输出

    2147483647
    0

    class Solution {
    public:
        int StrToInt(string str) {
            int n = str.size(),s = 1;
            long long res = 0;
            if (!n) return 0;
            if(str[0] == '-') s = -1;
            for(int i = (str[0] ==  '-' || str[0] == '+') ? 1 : 0; i < n; ++i){
                //if(!(str[i]>='0' && str[i]<='9')) return 0;
                //res = (res<<1)+(res<<3)+(str[i] & 0xf);
                if(!('0' <= str[i] && str[i] <= '9')) return 0;
                res = (res << 1) + (res << 3) + (str[i] & 0xf);
            }
            return res * s;
            
        }
    };
    

    相关文章

      网友评论

        本文标题:牛客-剑指0ffer-把字符串转换成整数

        本文链接:https://www.haomeiwen.com/subject/pvjgsctx.html