[LeetCode]String to Integer (atoi)

原创 2015年07月08日 20:28:02

将string或const char *c转成int,首先找第一个非空字符,如果第一个非空字符是“+-0123456789”说明为有效int,否则输出0

找到非空字符后,如果第一个非空字符为符号位,记录符号,否则,继续。
符号位后的字符不是”0123456789“也是无效的int,输出0
其他情况正确处理

/*
Implement atoi to convert a string to an integer.

Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.

Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.

Update (2015-02-10):
The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button  to reset your code definition.
*/
class Solution {
public:
//stoi,stod,stof(string)
    int myAtoi(string str) {
        string::size_type sz;
        for(sz=0; sz!=str.size(); ++sz)     //找非空字符
            if(str[sz]==' ')
                continue;
            else
                break;
        int flag = 1;   //1 for plus
        if(str[sz]=='-'){
            flag = -1;
            ++sz;
        }
        else if(str[sz]=='+'){
            flag = 1;
            ++sz;
        }
        char c = str[sz];
        long long int ret=0;
        if(c<'0'||c>'9')    return 0;   //invalid
        while(c>='0'&&c<='9'){
            if(flag ==1)
            ret = 10*ret + c-'0';
            else
            ret = 10*ret-(c-'0');
            c = str[++sz];
            if(ret>INT_MAX)
                ret = INT_MAX;
            else if(ret<INT_MIN)
                ret = INT_MIN;
        }
        return ret;

    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[LeetCode OJ]ZigZag Conversion && Valid Sudoku && String to Integer (atoi)

ZigZag Conversion我的思路: 1、将一个锯齿状排列的字符串拉成一条线,输入到一个新的字符串中。 2、只要弄清楚循环的特征,算好nRows的变化给循环带来的变化,还是很容易完成。 ...

LeetCode刷题笔录String to Integer (atoi)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cas...

leetcode #8 String to Integer (atoi)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases...

leetcode:String to Integer (atoi)

一、     题目 题目目的很明显,就是将一个字符串转换成整数,也就是平时经常用到的atoi. 二、     分析 题目其实不难,不过需要注意下面几点: 1、字符串前的空白 2. 字符串所表示数值的正...

8. String to Integer (atoi) LeetCode题解

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cas...

Leetcode之String to Integer (atoi)

和真正的C++中atoi函数还是有区别的哦~~~ 情况 Input Output 空 “” 0 空格 ” “ 0 空格系列 ” ...

[LeetCode]--8. String to Integer (atoi)

Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. ...

<leetcode>String to Integer (atoi)

问题描述: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible in...

leetcode——String to Integer (atoi) 字符串转换为整型数(AC)

Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cas...

LeetCode之8_String to Integer (atoi)

题目原文: Implement atoi to convert a string to an integer. Hint: Carefully consider all pos...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)