zoukankan      html  css  js  c++  java
  • [LeetCode] String to Integer (atoi)

    代码:

     1 class Solution {
     2 public:
     3     int atoi(string str) {
     4         int num = 0;
     5         int sign = 1;
     6         const int n = str.size();
     7         int i = 0;
     8 
     9         while (str[i] == ' ' && i < n)
    10             i++;
    11 
    12         if (str[i] == '+') {
    13             i++;
    14         }
    15         else if (str[i] == '-') {
    16             sign = -1;
    17             i++;
    18         }
    19 
    20         if (str[i] == '+' || str[i] == '-')
    21             return 0;
    22 
    23 
    24         for (; i < n; i++) {
    25             if (str[i] < '0' || str[i] > '9')
    26                 return num * sign;
    27             if (num > INT_MAX / 10 || (num == INT_MAX / 10 && (str[i] - '0') > INT_MAX % 10) ){
    28                 return sign == -1 ? INT_MIN : INT_MAX;
    29             }
    30             num = num * 10 + str[i] - '0';
    31         }
    32         return num * sign;
    33     }
    34 };
     1 class Solution {
     2 public:
     3     int atoi(string str) {
     4         int num = 0;
     5         int sign = 1;
     6         const int n = str.size();
     7         int i = 0;
     8 
     9         while (str[i] == ' ' && i < n)
    10             i++;
    11 
    12         if (str[i] == '+') {
    13             i++;
    14         }
    15         else if (str[i] == '-') {
    16             sign = -1;
    17             i++;
    18         }
    19 
    20         if (str[i] == '+' || str[i] == '-')
    21             return 0;
    22 
    23 
    24         for (; i < n; i++) {
    25             if (str[i] < '0' || str[i] > '9')
    26                 return num * sign;
    27             if (num > INT_MAX / 10 || (num == INT_MAX / 10 && (str[i] - '0') > INT_MAX % 10) ){
    28                 return sign == -1 ? INT_MIN : INT_MAX;
    29             }
    30             num = num * 10 + str[i] - '0';
    31         }
    32         return num * sign;
    33     }
    34 };

    杂记:

    1. 纯粹的细节题,但是感觉好多细节不明。

  • 相关阅读:
    好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效button
    ZOJ
    为应用程序加入缓存
    3、Spring4之Bean 配置的细节
    POJ
    解决apache+tomcatserver环境中文乱码的问题
    2014年CCNU-ACM暑期集训总结
    POJ 1328 Radar Installation(贪心)
    CF 452A(Eevee-直接试)
    Android中View和ViewGroup介绍
  • 原文地址:https://www.cnblogs.com/Azurewing/p/4313561.html
Copyright © 2011-2022 走看看