• [leetcode] 8. String to Integer (atoi) (Medium)


    实现字符串转整形数字

    遵循几个规则:

    1. 函数首先丢弃尽可能多的空格字符,直到找到第一个非空格字符。

    2. 此时取初始加号或减号。

    3. 后面跟着尽可能多的数字,并将它们解释为一个数值。

    4. 字符串可以在组成整数的字符之后包含其他字符,这些字符将被忽略,并且对该函数的行为没有影响。

    5. 如果str中的第一个非空格字符序列不是有效的整数,则为0。

    Runtime: 16 ms, faster than 62.80% of C++ online submissions for String to Integer (atoi).

    class Solution
    {
    public:
      int myAtoi(string str)
      {
        long res = 0;
        int sign = 1;
        int i = 0;
        while (str[i] == ' ')
          ++i;
    
        if (str[i] == '+' || str[i] == '-')
        {
          sign = str[i] == '+' ? 1 : -1;
          ++i;
        }
    
        while (str[i] >= '0' && str[i] <= '9')
        {
          res = res * 10 + str[i] - '0';
          if (res * sign >= INT_MAX)
            return INT_MAX;
          if (res * sign <= INT_MIN)
            return INT_MIN;
          ++i;
        }
    
        return res * sign;
      }
    };
  • 相关阅读:
    IO多路复用
    事件驱动模型
    协程
    进程
    py2与py3的编码问题
    Linux Centos7 网卡无法启动
    监控的法则
    如何优雅的采集activeMQ性能指标
    一分钟性能分析
    beta版 tomcat 应用监控指标
  • 原文地址:https://www.cnblogs.com/ruoh3kou/p/10003468.html
Copyright © 2020-2023  润新知