leetcode解题报告8. String to Integer (atoi)

leetcode解题报告8. String to Integer (atoi)

题目地址

难度是medium

题目描述

把一个字符串,变成数字
比如”123”, 返回数字123

我的思路

粗看,是很简单的模拟类题目。但是提了几次才过,难点在于考虑各种边界情况(特殊情况)
比如,字符串为空,前面是空字符,前面有符号标示(正负号),字符串包含其他符号,还有溢出等问题。

我的代码

class Solution {
public:
    int myAtoi(string str) {
        if (str.size() == 0) {
            return 0;
        }
        int index = 0;
        int flag = 1;

        while (str[index] == ' ') {
            index++;
        }

        if (str[index] == '+' || str[index] == '-') {
            if (str[index] == '-') {
                flag = -1;
            }
            index++;
        }
        long ans = 0;
        while (index < str.size()) {
            int t = str[index] - 48;
            if (t < 0 || t > 9) {
                return flag * ans;
            }
            ans = ans * 10 + t;
            if (ans > 2147483647) {
                if (flag == -1) {
                    return -2147483648;
                }
                return 2147483647;
            }
            index++;
        }
        return flag * ans;

    }
};

阅读官方题解

没有官方题解,从网上信息来看,题目重点考察的是对特殊情况,边界情况的考虑,也没什么可说的。

思想核心总结

考察对特殊情况,边界情况的考虑

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值