zoukankan      html  css  js  c++  java
  • 剑指offer系列39:把字符串转换成整数

    主要代码其实很少,主要是对各种情况的判断。在做题的时候一定要考虑到各种情况的非法输入。

    1.前面的空格需要跳过

    2.判断数字的正负号并记录

    3.如果有非法输入例如字母和其他非数字和正负号的字符,退出返回0

    4.返回的是一个数字,所以一定要考虑数字的边界问题

    5.对于各种情况考虑到之后最好再加一个无条件的输出语句,防止没有考虑到的情况发生

     1 class Solution {
     2 public:
     3     int StrToInt(string str) {
     4         if (str.empty())
     5             return 0;
     6         auto t = str.begin();
     7         while (*t == ' '&&t!=str.end()-1)//排除前面的空格
     8         {
     9             t++;
    10         }
    11         bool neg = false;//符号判断位,默认为正数
    12         if (*t == '+')
    13         {
    14             t++;
    15         }
    16         else
    17         {
    18             if (*t == '-')
    19             {
    20                 t++;
    21                 neg = true;
    22             }
    23 
    24         }
    25         long long int val = 0;
    26         for (; t != str.end(); t++)
    27         {
    28             if (*t >= '0'&&*t <= '9')//这里是将字符串转换为数字的基础操作,记住
    29             {
    30                 val *= 10;
    31                 val += *t-'0';
    32                 if ((neg&&val < INT_MIN) || (!neg&&val > INT_MAX))//判断数字是否越界
    33                 {
    34                     return 0;
    35                 }
    36             }
    37             else
    38             {
    39                 return 0;
    40             }
    41         }
    42         if (t != str.end())
    43             return 0;
    44         if (neg)
    45             return -val;
    46         else
    47             return val;
    48     }
    49 };
  • 相关阅读:
    .gitignore语法
    每日阅读
    css摘要
    ubuntu安装qq、微信
    django中views中方法的request参数
    js html标签select 中option 删除除了第一行外的其他行
    js 新增标签、标签属性
    python中None与0、Null、false区别
    python class中__init__函数、self
    for foreach循环
  • 原文地址:https://www.cnblogs.com/neverland0718/p/11237029.html
Copyright © 2011-2022 走看看