leetcode String to Integer (atoi)

这个题目就是将字符串转化为整数,但是这个题目的要求比较少,没有考虑e,小数点等情况,只是很简单的字符串的转化,当不满足条件时,比如-+1,要输出0,虽然我觉得输出-1应该才对吧。。。还有一点是对溢出的判断,溢出的话,就输出边界值(INT_MAX或INT_MIN)还有对于正负数空格的判断,别的要求就没有了,代码如下,也比较简单。。。


class Solution {
public:
    int myAtoi(string str) {
        int ans = 0;
        int i = 0;
        int minas = 1;
        while(str[i]==' ')
            i++;
        int size = str.length();
        if(str[i]=='-'||str[i]=='+')
        {
            minas = str[i++]=='-'?-1:1;
        }
        while(i<size&&str[i]>='0'&&str[i]<='9')
        {
            if(ans > INT_MAX / 10 || (ans == INT_MAX / 10 && str[i] - '0' > 7))
                return minas==1?INT_MAX:INT_MIN;
            ans=ans*10+str[i++]-'0';
        }
        return minas*ans;
    }
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值