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. 纯粹的细节题,但是感觉好多细节不明。

  • 相关阅读:
    java se 转到ee小结
    objective c基本知识
    2013_11_14:递归算法(2)—全排列
    2013_11_13:递归算法(1)
    2013_11_13:关于 new 和delelte 的使用
    c++调试问题
    模式匹配BM算法介绍与实现
    一个n数组求和问题
    机试题
    算法题目
  • 原文地址:https://www.cnblogs.com/Azurewing/p/4313561.html
Copyright © 2011-2022 走看看