zoukankan      html  css  js  c++  java
  • 8. String to Integer (atoi)

    文章目录如下

    (1)自己的思路

    (2)自己的代码

    (3)别人的思路

    (4)别人的代码

    (5)对比自己的不足之处

    (1)自己的思路

     首先这道题的核心思想是数字与字符之间的转换,两个的联系便是ASCI码的关联。即如果字符x在'0'到'9'之间,那么x-'0'便是x对应的真是的数值。在具体构造返回数值方面,与上一篇思路差不多。

    (2)自己的代码

    class Solution {
    public:
        int myAtoi(string str) {
    
            //使用ascii码转换即可  48-57
    
            int tmp = 0;
    
            for (int i = 0; i<str.length(); i++)
            {
                if (str[i] >= '0'&&str[i] <= '9')
                {
                    tmp = tmp * 10 + (str[i] - '0');
                }
            }
    
            if (str[0] == '-')
                tmp = 0 - tmp;
            return tmp;
        }
    };

    (3)思路与我差不多,但是考虑到了空格,+,-号的问题

    (4)别人的代码

    class Solution {
    public:
        int myAtoi(string str) {
            int num = 0;
            int sign = 1;
            const int n = str.length();
            int i = 0;
    
            while (str[i] == ' ' && i < n) i++;
    
            if (str[i] == '+') {
                i++;
            }
            else if (str[i] == '-') {
                sign = -1;
                i++;
            }
    
            for (; i < n; i++) {
                if (str[i] < '0' || str[i] > '9')
                    break;
                if (num > INT_MAX / 10 ||
                    (num == INT_MAX / 10 &&
                        (str[i] - '0') > INT_MAX % 10))
                {
                    return sign == -1 ? INT_MIN : INT_MAX;
                }
    
                num = num * 10 + str[i] - '0';
            }
            return num * sign;
        }
    };

    (5)对比自己的不足之处

    其实关于别人的答案我也有着自己的质疑,例如"--2342"这种情况就不能处理,所以虽然我的代码有很多不足,但是如果把别人的代码当做答案我也觉得有些牵强,但是做题嘛,主要是锻炼思维,开心就好啦~

  • 相关阅读:
    Shell 中引用符号的名称及意义
    查看该目录下有几个文件夹几个文件的shell代码
    Linux下find 命令用法详解+实例
    Linux中echo的用法
    man help
    《鸟哥的linux私房菜》关于数据流重导向
    linux开机自动加载服务设置
    Shell调试技术总结(二)
    Shell中关于if,case,for,while等的总结
    硬盘的分区
  • 原文地址:https://www.cnblogs.com/magicy/p/5343754.html
Copyright © 2011-2022 走看看