LINTCODE——转换字符串到整数

来源:互联网 发布:多益网络 传送门骑士 编辑:程序博客网 时间:2024/06/01 07:41

LINTCODE——转换字符串到整数

思路:并不是特别难,主要把情况考虑到就好了,如果开始计算数值,那么之后出现的所有非数值元素,直接输出结果,还有再每次得到res的值之后都进行一次检查,防止long long型溢出;

class Solution {public:    /*     * @param str: A string     * @return: An integer     */    int atoi(string &str) {        // write your code here        if(str.empty())            return 0;        int n = str.size();        long long res  = 0 ;        bool c = true;        long long flag = 1;        for( int i  = 0; i < n ;i++)        {            if(check(str[i]))            {                //如果开始计算,标记C,之后出现任何的非数字,直接输出                c = false;                res = res * 10 + str[i]-'0';                if(res*flag > INT_MAX)                    return INT_MAX;                if(res*flag < INT_MIN)                    return INT_MIN;            }            else if(c)            {                if(str[i] == '-' || str[i] == '+')                {                    if(str[i] == '-' && flag == 1)                        flag = -1;                    //标记c为FALSE                    c = false;                }                else if(str[i] == ' ')                    continue;                else                    return res*flag;            }            else                   return res*flag;         }        return (int)(res*flag);    }    //判定a字符串是不是一个数    bool check(char a)    {        if( a >= '0' && a <= '9')            return true;        else            return false;    }};
原创粉丝点击