LeetCode-Atoi

Implement atoi to convert a string to an integer.

具体的网上已经有很多解法

这里主要就是注意一些地方(最重要的就是返回值一开始最好赋值成为long long 因为有可能会越界)

然后就是一些特殊情况的分析了

class Solution {
public:
    int atoi(string str) {
        if(str.length() == 0)
        {
            return 0;
        }
        long long  retVal = 0;
        int length = str.length();
        int i = 0;
        char signFlag = 1;
        while(str[i] == ' ')
        {
            i++;
        }
        if(str[i] == '-')
        {
            i++;
            signFlag = -1;
        }
        else if(str[i] == '+')
        {
            i++;
        }
        for(;i < length; i++)
        {
            int n = str[i]-'0';
            if((n < 0) || (n > 9))
            {
                return retVal*signFlag;  //<出现特殊符号
            }
            retVal = retVal*10+n;
            if(retVal*signFlag > INT_MAX)
            {
                return INT_MAX;
            }
            else if(retVal*signFlag < INT_MIN)
            {
                return INT_MIN;
            }
        }
        return retVal*signFlag;

    }
};
时间: 2024-10-23 17:35:00

LeetCode-Atoi的相关文章

[LeetCode]atoi 边界条件

需要跳过前置的空格和0: 必须考虑前置符号: int的取值范围为[0x7fffffff, 0x80000000],如果超过了这个边界,则取边界.为了判断是否超过边界,需要用一个更大的整数类型表示,这里用long long: "       -12a12" 输出的是前面有效部分-12 class Solution { public: int atoi(const char *str) { if(!str||*str=='\0')return 0; int flag=1; long lon

LeetCode:String to Integer (atoi)

1.题目名称 String to Integer (atoi) (字符串到数字的转换) 2.题目地址 https://leetcode.com/problems/string-to-integer-atoi/ 3.题目内容 英文:Implement atoi to convert a string to an integer. 中文:实现atoi函数,将输入的字符串(String类型)转换为整型数据(Integer类型) 提示:实现的atoi函数需要满足以下特征 忽略字符串第一个非空格字符前的所

Leetcode 数 String to Integer (atoi)

本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie String to Integer (atoi) Total Accepted: 9862 Total Submissions: 67880 Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge,

[LeetCode][Algorithms]String to Integer (atoi)

# -*- coding: utf8 -*-'''__author__ = '[email protected]'https://oj.leetcode.com/problems/string-to-integer-atoi/ Implement atoi to convert a string to an integer. Hint: Carefully consider all possible input cases. If you want a challenge, please do

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

[题目] Implement atoi to convert a string to an integer. [题目解析] 该题目比较常见,从LeetCode上看代码通过率却只有13.7%,于是编码提交,反复修改了三四次才完全通过.该题目主要需要考虑各种测试用例的情况,比如"+5"."   67"."   +0078"."  12a56--".int的最大值最小值溢出等情况,通过这个题目,联系到实际项目中,我们一定要多考虑边界

[LeetCode]-007-String to Integer (atoi)

网址:https://leetcode.com/problems/string-to-integer-atoi/ 题意: 字符串转int数 分析: 经典题,主要需要注意输入中,允许先有空格,再来内容. 内容可能还不是整齐和规则的... 解法: 1.遍历空格 2.判断正负号 3.读数字 4.可能存在结尾号 代码: https://github.com/LiLane/leetcode/blob/master/java/008-StringtoInteger(atoi)-201504292346.ja

[leetcode]_String to Integer (atoi)

非常考虑思维全面性的一道题,考验是否能够考虑本问题的方方面面. 题目:将一个string转换为int.实现函数atoi()的功能. 先应该明确atoi()有哪些特殊功能:(正常的正负数情况我就不列了) input output "+1" 1 "   +   1"  0(error了) "       1" 1(前头只有空格是合法的) "12b45" 12(取前面的数字) 溢出 : "2147483648"(

LeetCode 008 String to Integer (atoi)

[题目] 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 b

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

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

【leetcode系列】String to Integer (atoi)

这个我就直接上代码了,最开始把"abc123"也算作合法的了,后来查了一下atoi的定义,把这种去掉了. public class Solution { public static int atoi(String inStr) { long result = 0L; /* * 网上查了一下,atoi函数的定义是如果第一个非空格字符存在,是数字或者正负号则开始做类型转换, * 之后检测到非数字(包括结束符\0)字符时停止转换,返回整型数.否则,返回零.可能的输入情况有: 1.空字符串 *