[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 long ans=0;
        while(*str&&(*str==' '||*str=='0'))str++;
        if(str[0]=='+')
            str++;
        else if(str[0]=='-')
            flag=-1,str++;
        for(;*str!='\0';str++){
            if(*str>='0'&&*str<='9')
                ans=ans*10+(*str-'0');
            else
                break;
            if(flag==1&&ans>0x7fffffff){
                ans=0x7fffffff;break;
            }
            else if(flag==-1&&ans>0x80000000){
                ans=0x80000000;break;
            }
        }
        int ians=flag*((int)ans);
        return ians;
    }
};
时间: 2024-10-08 07:55:03

[LeetCode]atoi 边界条件的相关文章

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笔记: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 t

[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